1.1. Release History for Sitecore 7.5
February 13, 2015
Released Sitecore® Experience Platform™ 7.5 rev. 150212 (7.5 Update-2)
Note: This is a product update. Sitecore recommends that you upgrade to this release if it includes fixes that meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit from waiting to upgrade until Sitecore releases an update that is relevant for your organization. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore 7 downloads page.
Highlights
The DLLs have been signed according to Microsoft’s requirements. The upgrade package only refers to the updated DLLs and we have not implemented any changes to the configuration files or to the functionality in Sitecore.
February 05, 2015
Released Sitecore® Experience Platform™ 7.5 rev. 150130 (7.5 Update-1)
Note: This is a product update. Sitecore recommends that you upgrade to this release if it includes fixes that meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit from waiting to upgrade until Sitecore releases an update that is relevant for your organization. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore 7 downloads page.
Highlights
The main highlights in this update are:
- Includes all the fixes from 7.2 Update-3.
- A large number of issues relating to Engagement Analytics have been addressed.
- Implementation of support for several Solr cores has been improved.
Important changes
- A limitation of the number of pages that are tracked and saved into the experience database for interactions has been introduced. Experience data for all further page requests for visits after the limit is reached is not saved. You can configure the limit in the SetDummySession processor of the ensureSessionContext pipeline defined in the Sitecore.Analytics.Tracking.config configuration file in the /App_Config/Include folder. The default maximum number of tracked and saved pages for a single interaction is 1000. (6522, 6613, 6624, 6627)
Improvements
- This release incorporates all the changes made for 7.2 Update-3. For additional information about these changes, please refer to the release notes:
Resolved Issues
- Engagement Analytics
- Updating visitor classification on the content management server would sometimes lead to inconsistent data between xDB and the reporting database. This has been fixed. (6615)
- SQL Server transaction deadlocks related to the processing expired sessions could occur on high load. This has been fixed by changing the GetExpiredItemExclusive stored procedure in the Session database so that it now uses WITH UPDLOCK when reading from the Sessions table. (6602)
- Custom facets of the contact did not always merge correctly. This has been fixed. (6592)
- A rendering based on the condition of a triggering goal in a current visit was not rendered if the goal had been triggered. This has been fixed. (423908, 6623)
- A connection string to the reporting database was required even when the content management server was configured to use the Remote Reporting Service. This has been fixed. (6518, 6441)
- A goal or page event specified by its ID in the st_trk query string parameter was not triggered for the request. This has been fixed. (6512)
- When using the Identify method of the session object to identify the contact, the System.InvalidOperationException exception with the message “Another contact with the same identifier already exists. ” would sometimes appear in the log file. This has been fixed. (6601, 428795)
- VisitorIdentification was not working correctly in Internet Explorer 8 and Internet Explorer 9 browsers and threw JavaScript errors. This has been fixed. (425212, 425820)
- The “Triggering actions for user is not implemented” exception was thrown in the Execute Trigger dialog of the Supervisor application. This has been fixed by the simulation functionality being implemented in which the ForceTrigger method in the Sitecore.Analytics.Automation.AutomationContactManager class is no longer obsolete and used to force the triggers. (424679)
- When Sitecore attempted to get sharding information from Mongo ‘config’ database and the database was not available, the following error would appear: “Command 'count' failed: unauthorized (response: { "ok" : 0.0, "errmsg" : "unauthorized" }”. This has been fixed. (426283, 6595)
- Expired sessions were sometimes not removed from the SessionState database when the system was under heavy load. This has been fixed by optimizing the GetExpiredItemExclusive stored procedure. (426079)
- The X-Forwarded-For header was not considered when a contact was identified. As a result, the Contact IP address was not resolved correctly. This has been fixed. (426386)
- The Interaction.DeviceId would sometimes not be saved to the Experience database after a session expiration. This has been fixed. (426388, 6633)
- The IP address would sometimes not be resolved correctly after identifying a contact. This has been fixed. (6635)
- If you opened the Contact overview report from the Supervisor application in the Marketing Center, the system would sometimes throw an unhandled exception of the System.FormatException type. This has been fixed. (426893, 427260)
- If a user used paging to navigate through the contacts enrolled in a state of a test plan, the message: “Data could not be loaded” would appear in the SelectStateVisitor dialog. This has been fixed. (426994)
- The SaveEngagementPlan processor has been deprecated and is not used any longer. The processor has been removed from the deployDefinition pipeline. (6544)
- The ProcessTracking method in the Sitecore.Analytics.Data.TrackingFieldProcessor was not implemented and threw a NotImplemented exception. This has been fixed so that now it processes campaigns, page events, and profiles from tracking the field of the item. (427961)
- Contact custom data would sometimes be lost when contacts are moved to another state in an Engagement Plan. This has been fixed. (422113)
- Localization
- Display name of __Standard Values items for some analytics templates were localized in some languages. As a result, all analytics items created from these templates inherited the value from the Display Name field. This has been fixed. The __Standard Values items do not have localization in the Display Name field. (424664)
- Miscellaneous
- If you used .NET Framework 4.5 and you configured Sitecore to use the Forms authentication mode instead of None, users were not logged in properly to the Sitecore Client. When a user tried to log in with valid credentials, the login page was refreshed and the user was not logged in. This issue was fixed in previous Sitecore 6.6 updates but reintroduced in the Sitecore 7.5 initial release. This has been fixed. (422172, 374264, 427368)
- The forbidden ASP.NET EnableViewStateMac page attribute has been removed from all Sitecore pages. (420470)
- When you worked with Sitecore, an error message would sometimes appear in the Sitecore log file relating to the Sitecore.Services.Infrastructure.Web.Http.DefaultRouteMapper creating instance. This has been fixed so that the initialization logic type has been corrected. (423248)
- Performance
- The Page event registration API from PageContext has been updated to work with entity IDs instead of names. The new API is backward compatible. (424366, 427405)
- The performance of the getting item by name operation in the Sitecore.Analytics.Data.Items.ItemRecords has been improved. All functionalities that use this API (for example, the startTracking pipeline) now work faster. (425494)
- The process of merging interactions has been refactored to improve the performance of the contact identification. (427818)
- The Cleanup method of the Sitecore.Analytics.Lookups.GeoIpHandleTable class has been optimized to save processor time. (427955)
- The Analytics API has been improved to work better with users that have a large amount of data in their analytics profile. (424331)
- A large number of persistent user tickets stored in the SC_TICKET property entry could lead to performance issues in the Experience Editor (Page Editor) and Content Editor applications. This has been fixed by changing the way of storing persistent user tickets in the Properties table. Each user ticket is now stored in a separate Property entry. (408523, 416668)
- Renderings and layouts
- When custom rendering parameters templates were used and these templates inherited from other templates that had field sections with the same names, fields from these sections were not merged in the Control Properties dialog and were shown in separate sections with the same names. This has been fixed. (354862)
- Setup.exe installation program
- When you installed Sitecore, the installation program created a number of performance counters that were not in use. This has been fixed so that the installation program does not create obsolete counters. However, the obsolete counters still appear in the Windows Performance Monitor application if you have previously installed earlier Sitecore versions, or if you install earlier Sitecore versions after you install Sitecore 7.5. (408575, 408683, 408733)
- Sitecore.ContentSearch
- Search in the PDF documents was not working with Adobe PDF IFilter 11 x64 installed. This has been fixed. (401460)
- Sitecore.ContentSearch Solr provider
- The implementation of the GetTypeFieldNames method in the SolrFieldNameTranslator class was not thread safe. While searching, an infinite loop could occur, which decreased the performance of the system until the ASP.NET worker process was restarted. This would only occur in very rare cases. This has been fixed. (426716)
- Sitecore could not be started and failed with an exception when the Solr provider was configured to use different Solr Cores for its indexes on various (Ninject, StructureMap or Unity) IoC containers. This has been fixed. (408993, 410276, 420356)
- Sitecore could not be started and failed with the SearchProviderConnectionException exception when the Solr provider was configured to use the Unity IoC container and the ContentSearch.Solr.EnableHttpCache setting was set to True. This has been fixed. (409760, 420356)
- Using the Sitecore clients with out-of-process session state modes
- A number of dialogs could not be opened on Content Management servers with an out-of-process session-state configured. This happened because the pipeline arguments were not serialized correctly. This has been fixed. (423920, 424008)
Breaking changes
- In Sitecore.Kernel, the old performance counter classes have been reworked and improved. Some of the changes are breaking API changes.
- IRestRequest and IRestResponse interfaces defined in sitecore.cloud.restclient assembly have been extended with new properties.
October 14, 2014
Released Sitecore® Experience Platform™ 7.5 rev. 141003 (7.5 Initial Release)
This is a feature release. Sitecore recommends upgrading to this release when the fixes included meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The Sitecore 7.5 rev. 141003 initial release includes all the fixes from 7.2 Update-2.
The main highlights of this release:
- Sitecore 7.5 revolutionizes the way we handle "experience data".
- This new flexible and scalable architecture is capable of handling very large amounts of customer data.
- You can scale both up and down from small single instance, low traffic solutions to larger solutions consisting of hundreds of servers designed to handle high volumes of traffic.
- Sitecore 7.5 introduces the Experience Database (xDB) with collection, processing and reporting that supports enterprise level installations.
- The Experience Profile is an entity in the xDB that provides a centralized object to store all known data against an individual, whether the individual is known (email, name, tel etc.) or anonymous.
- The Experience Profile gives you a clear view of de-anonymized contacts and activities before the individual is known and provides you with a visualization of all Interactions an individual has with a brand.
- Contact Search extends Sitecore 7’s search & indexing to find groups of people with common characteristics in the xDB.
- The Sitecore Tag Management client library (previously available as a separate download) is now distributed as part of the platform.
New and updated documentation
-
New documentation released with Sitecore 7.5:
- xDB Upgrade and Conversion Process
A step-by-step guide to the Sitecore 7.5 upgrade and conversion process - xDB Overview and Architecture
A conceptual overview of the architectural changes introduced in Sitecore 7.5 - xDB Configuration Guide
A configuration guide for Sitecore administrators and developers - Sitecore Experience Database, Cloud Edition - Quick Start Guide
A developer's guide to configuring Sitecore xDB Cloud Edition - Experience Profile Quick Start Guide
A guide to getting started with the Sitecore Experience Profile - SPEAK Component Reference
A reference guide to the SPEAK components - Sitecore.Services.Client Develper's Guide
A guide to the service layer that you use to develop data-driven applications
- xDB Upgrade and Conversion Process
- Existing documentation that has been updated for Sitecore 7.5:
- Sitecore Search and Indexing Guide
A guide for Sitecore partners and developers who want to implement search functionality in Sitecore - Developer's Guide to Item Buckets and Search
A developer's guide to working with item buckets, search, and indexing in Sitecore - Sitecore Experience Platform 7.5 Installation Guide
An installation guide for administrators and developers
- Sitecore Search and Indexing Guide
System requirements
Supported SQL Server versions:
- Sitecore 7.5 now supports SQL Server 2014, in addition to SQL Server 2012 and SQL Server 2008 R2 SP1.
- The initial release of Sitecore® Experience Platform™ only supports Microsoft SQL Server (except for the DMS collection database which requires MongoDB).
- Please contact us at oraclesupport@sitecore.net if you require Oracle support for 7.5 or later.
The following system requirements have changed:
- On Sitecore instances where Analytics is enabled, you must use a session-state provider that can invoke the SessionEnd event, such as InProc or the new Sitecore session-state providers for MongoDB or SQL Server. When Analytics is enabled, the standard StateServer provider from Microsoft cannot be used because the provider does not support the SessionEnd event.
- DMS collection and reporting databases
- The collection database uses MongoDB as storage. For production environments, the minimum recommended configuration is a single replica set consisting of two full capacity data servers for failover and one low capacity server for the arbiter. Single server MongoDB installations should only be used for development and testing.
- The reporting database uses SQL Server as storage. The reporting database server has the same system requirements as the Analytics database server had in previous versions of Sitecore.
- Running the DMS collection and reporting databases on Oracle is no longer supported.
- The system requirements for content management and content delivery servers have not changed.
New features
Sitecore 7.5 introduces the Sitecore Experience Database:
- The Sitecore Experience Database (xDB) is a set of digital marketing features that enable you to interact and engage more effectively with your contacts and customers, while doing so in a more scalable way than was previously possible. The xDB is a central data repository for marketers that collects and connects all customer interactions in a single view, and enables immediate, personalized, automated experiences.
- The new marketing platform and architecture is designed for hyperscalability.
- Available on-premise or as a service
- Vertical and Horizontal scaling
- Sitecore 7.5 comes with support for automatically connecting to Sitecore Experience Database Cloud Edition.
The main highlights of the Sitecore Experience Databases are:
- A collection layer, which tracks experiences as close to the customer as possible.
- Database session storage is available for scalability/resilience. Session state providers for use with the Sitecore Experience Platform are available for MongoDB and Microsoft SQL Server. For information on how to enable and configure these providers, see the xDB Configuration Guide.
- A collection database, which collects and stores all experiences of all customers.
- Easily extendable and customizable
- Tracks the contact, not the device
- Uses NoSQL technology (MongoDB)
- A processing and aggregation layer, which groups and aggregates experience data.
- A dedicated reporting database
- Fact/dimension-based tables that store aggregated data for reporting and analysis
- Single reporting API for reporting consistency
- Reporting service for cloud-based solutions
- SQL-based technology (SQL Server)
- An engagement automation API that ensures marketing plans are carried out for the contact, with full data integrity.
- Customer segmentation that uses Sitecore's search and indexing API to find groups for targeted marketing campaigns.
- A search index for experience data. The new search index supports the customer segmentation feature and lets you make active use of experience data in a whole new way in your solutions.
Note: In Sitecore 7.5, the search index for experience data cannot be rebuilt due to the way the data is aggregated and indexed. Therefore, the option is not available in the Indexing Manager in the Control Panel. You can currently only rebuild this index by rebuilding the reporting database. - The Experience Profile is a new sales intelligence UI that provides a single, real-time view of all the online experiences an individual has had with your organization. The application is available in the Launch Pad.
- A shared session state provider that makes session state accessible from any visit associated with the contact.
- Clusters – depending on the location, a contact can be redirected to the closest cluster. In addition, simultaneous sessions across different browsers or devices related to the same contact are tracked and share the same contact data context. This allows systems such as the engagement automation system to operate with the most current data.
Additional new features
- Sitecore.Services.Client service layer
- The new Sitecore.Services.Client service layer provides a configurable and extendable framework for creating consistent client-server communication for your applications, using the ASP.NET Web API as the foundation.
- Clients can access server-side classes using the provided Restful API directly, via client-side JavaScript, or via SPEAK components.
- The service layer provides two predefined services:
- ItemService: provides access to Sitecore items
- EntityService: provides access to customer defined business objects
- Important: Changing the settings in the Sitecore.Services.Client.config file may impact the security of your Sitecore installation. Please consider any changes carefully before you implement them on a production server. If you change the SecurityPolicy setting or the settings related to anonymous users, you may allow third parties to access content directly on your server without any security restrictions.
- Limitations: The Sitecore.Services.Client ItemServiceController does not currently support customizations or extensions. This means that customers who want to override the default behavior of the ItemServiceController will need to create their own controller (perhaps starting with a copy of the provided controller) and make changes to it. We hope to improve this limitation in a later release.
- SPEAK components for the Sitecore.Services.Client service layer
- The new StoredQueryDataSource SPEAK component allows you to access the ItemService from SPEAK applications.
- The new EntityDataSource SPEAK component allows you to access the EntityService from SPEAK applications.
- Media request protection
- The new media request protection feature restricts media URLs that contain dynamic image-scaling parameters so that only server-generated requests are processed. This ensures that the server only spends resources and disk space on valid image scaling requests.
Sitecore Corp. wants to give credit to Cognifide (Adam Najmanowicz and Marek Musielak, www.cognifide.com) for the discovery of this vulnerability, for their cooperation and providing the initial ImageGuard solution. - When the feature is enabled, Sitecore automatically signs image URLs that are rendered by the <renderField> pipeline and adds a hash value to the query string. When processing an incoming media request, image resizing/scaling is skipped if any of the relevant query string parameters in the image URL have been altered or any extra resizing parameters have been appended to the URL. In these cases, Sitecore returns the original, unaltered image. Requests for the original image (without any resizing/scaling parameters) work as usual and are not restricted.
- If you have code in your solution that manually appends image scaling parameters to image URLs without passing the parameters to the <sc:image> control, you must rewrite the code to append a hash value using one of the helper methods or rewrite it to use the <sc:image> control. In XSLT renderings, you can use sc:SignMediaUrl(url) or sc:GetSignedMediaUrl(…). In C# code, you can use HashingUtils.ProtectAssetUrl(url) which appends a hash value to the provided URL, or you can use GetAssetUrlHash(url) to only return the hash value for the provided URL.
- You must ensure that any static image URLs (for example, in CSS or aspx files) that contain image scaling parameters are updated to include the corresponding hash value. To make it easy to update these type of static URLs, a new /sitecore/admin/MediaHash.html is available, which lets you enter a media URL and, with the click of a button, generate the corresponding hash value.
- Image URLs where resizing parameters are manipulated or added using JavaScript will no longer work because you cannot calculate the hash values from JavaScript. If you need this type of functionality, you will have to find a different approach, such as implementing a service that can calculate the correct hash value.
- This feature is configured in the /App_Config/Include/Sitecore.Media.RequestProtection.config file.
- The new media request protection feature restricts media URLs that contain dynamic image-scaling parameters so that only server-generated requests are processed. This ensures that the server only spends resources and disk space on valid image scaling requests.
Improvements
- A single distribution file for installing the Sitecore Experience Platform (378192)
- In the previous version, DMS was available as a separate download. Starting with Sitecore 7.5, the Analytics SQL Server database and the related include files are now part of the main distribution. This makes it easier to quickly get up and running with the Sitecore Experience Database.
- When you install Sitecore using the setup.exe installation program, the Analytics database is automatically attached and the Analytics include files are enabled. To complete the installation, you must manually configure the MongoDB connection strings, as well as update the relevant settings in the web.config and Sitecore.Analytics.config files, such as MailServer and Analytics.EMailFromAddress (for sending out reports as emails).
- When you install Sitecore from the zip archive, the Analytics database is now available in the /Databases folder, the Analytics include file are enabled by default, and the /App_Config/ConnectionStrings.config file contains sample connection strings for the collection and reporting databases.
- Engagement Analytics
- To minimize interruptions to the reporting functionality, the rebuild reporting database process now works with a dedicated, secondary instance of the reporting database. After the rebuild process has finished, you must replace the primary reporting database with the secondary reporting database. Report rebuilding is performed using the new /sitecore/admin/RebuildReportingDB.html page. This has replaced the Refresh Aggregated Data in Reports wizard.
- In earlier versions, images and other Sitecore media sometimes loaded slowly on the first visited page in a session. This happened because the ASP.NET session was available to all media requests that were part of the first visit, preventing the media requests from being handled in parallel. The logic for auto-detecting whether a visitor is a robot has been reworked so that the MediaRequestSessionModule no longer needs to ensure that the ASP.NET session is available to all media requests for the first visit in a session (unless the media has tracking information assigned). (408587)
- The robot detection logic now handles 'touchstart' events in the browser to better support detection of touch-screen devices. (420817)
- To give better control over when definition data is deployed to the Analytics database, items based on the Traffic Type templates are now placed in the Analytics Workflow.
- The default traffic type and visitor identification definition items are now protected to avoid them being modified or deleted by mistake.
- Segment Builder
- The Segment Builder has been reworked so that it is now based on the new customer segmentation functionality in 7.5 which leverages Sitecore's search and indexing API.
- Sitecore App Center
- The Sitecore Tag Management client library, which was previously available as a separate download, is now distributed as part of the platform. This makes it easier to use App Center apps, such as Click Tracking, without any installation. For more information, see the Sitecore App Center documentation. (406037)
- Sitecore.ContentSearch API
- To optimize performance, Lucene indexes can now be configured to be sharded across multiple disk drives.
- The SwitchOnRebuild index implementation has been rewritten to support sharding Lucene indexes across multiple disk drives.
- Support has been added for using multiple search providers concurrently. This means that, as long as the search indexes use unique names, you can configure some of your search indexes to use Solr while your other search indexes use Lucene. (386841)
- Indexing of null values and empty values is now supported.
- Computed fields now support indexing composite values. This means that you can use computed fields in certain scenarios where previously you would have used a custom field. This is an example of how composite values can be defined:<fields hint="raw:AddComputedIndexField">
<field fieldName="Contact.FullName" type="Sitecore.ContentSearch.ComputedFields.CompositeTextField, Sitecore.ContentSearch" matchField="type" matchValue="contact" separator=" ">
<part>Contact.FirstName</part>
<part>Contact.MiddleName</part>
<part>Contact.Surname</part>
</field>
</fields>
- A new CollapsedIndexField class lets you index object structures into a single document.
- A new ObserverCrawler<T> class lets you crawl IObservable data streams. This class is used as a base class for the crawlers that index experience data, and it also lets you easily implement your own crawlers that index other IObservable data streams.
- A new DynamicExpression class lets you parse string expressions to Linq expressions. This is an example of how the class can be used:var p1 = Expression.Parameter(typeof(IQueryable<TestDocument>), "queryable");
var e = DynamicExpression.ParseLambda(new[] { p1 }, null, "queryable.Where(Name == @0).OrderBy(NameSortable)", "Sitecore");
var searchResults = (e.Compile().DynamicInvoke(queryable) as IQueryable<TestDocument>).ToList(); - The default index configuration has been modified so that it now indexes the __hidden field. This lets you filter search results by this field, which is also used by the SPEAK Select Media dialog. (407229)
- SPEAK Framework
- [PageCode] The SpeakCoreVersion parameter has been added. By default, the PageCode uses the SPEAK Core 1-1, which is the recommended version of the SPEAK core for this release.
- SPEAK Business Component Library
- The LoadOnDemandPanel component has been added. This simple panel does not load contained components by default when Sitecore first loads the parent page – you must add code to call the component’s “load” method to load the contents at run time. For example, to reduce the initial time required to load the page, you can include the component as the top-level panel in a tab in a TabControl, and then load the contents of the tab when a user activates it. (5682)
- Sitecore.ContentSearch Linq layer
- The following Linq operators are now supported: join, group join, and self join.
- Page Editor performance improvements
- To improve performance when using the Page Editor, a new placeholder cache has been implemented. (406267, 409332)
- The XmlPatchUtils.MergeChildren() method has been reworked to improve performance. This change reduces the overhead of merging layout deltas when resolving presentation details for an item. (406264)
- New include files in the /App_Config/Include folder
- Sitecore.Apps.TagInjection.config enables the Sitecore Tag Management client library.
- Sitecore.Media.RequestProtection.config enables and configures the protection of media requests so that only server-generated requests are processed.
- Sitecore.Services.Client.config configures the Sitecore.Services.Client service layer.
- Sitecore.Speak.Applications.config contains logic that supports SPEAK applications (this was previously part of the Sitecore.Speack.config file).
- Sitecore.Analytics.Automation.TimeoutProcessing.config configures the Engagement Automation subsystem to process timeout conditions for engagement automation states.
- Sitecore.Analytics.Model.config defines the model and the entities for contact objects.
- Sitecore.Analytics.MongoDb.config contains configuration related to MongoDB.
- Sitecore.Analytics.Processing.config defines the Task Manager and the API that you use to register processing tasks, regardless of whether this server is configured to perform processing tasks or not. In most cases, you should leave this file enabled.
- Sitecore.Analytics.Processing.Services.config launches the Task Manager and processing services on this server. You can disable this file if the current server does not need to perform processing tasks.
- Sitecore.Analytics.Processing.Aggregation.config configures the server to aggregate data from the collection database before it is stored in the reporting database. You can disable this file if the current server does not need to perform aggregation tasks.
- Sitecore.Analytics.Processing.Aggregation.ProcessingPools.config configures the processing pools that are available to the processing subsystem when it aggregates data from the collection database. The processing pools are shared by the servers that run the aggregation subsystem and the servers that register things for aggregation. In most cases, you should leave this file enabled.
- Sitecore.Analytics.Processing.Aggregation.Services.config launches the background services that perform aggregation tasks. You can disable this file if the current server does not need to perform aggregation tasks.
- Sitecore.Analytics.Reporting.config configures the reporting subsystem of the Sitecore Experience Database and makes the experience data available for use by Sitecore reporting applications.
- Sitecore.Analytics.Reporting.RemoteClient.config.disabled contains configuration settings that let the reporting APIs communicate with a remote reporting server.
- Sitecore.Analytics.Reporting.RemoteServer.config.disabled configures the current server as a remote reporting server that can serve reporting data to remote reporting clients.
- Sitecore.Analytics.Tracking.config configures the tracking subsystem of the Sitecore Experience Database, which is responsible for tracking of online visitors. The system tracks personalization, goals, campaigns, profile values, patterns, multivariate tests, and so on.
- Sitecore.Analytics.Tracking.Aggregation.config configures the tracking subsystem so that it schedules new online visits and automation states for aggregation into the reporting database.
- Sitecore.Analytics.Tracking.Database.config enables the tracking subsystem to write to and read from the collection database. You can disable this file if you want to prevent the tracking subsystem from communicating with the collection database.
- Sitecore.Cloud.Xdb.config.disabled contains configuration settings for connecting to the xDB Cloud Edition.
- Sitecore.ContentSearch.DefaultConfigurations.config contains the configuration that is shared between the Lucene and the Solr provider (which was previously part of the provider-specific configuration files).
- Sitecore.ContentSearch.Analytics.config defines a number of pipelines that are executed when the system indexes experience data.
- Sitecore.ContentSearch.Lucene.Index.Analytics.config defines the Lucene search index that is used to index experience data.
- Sitecore.ContentSearch.Solr.Indexes.Analytics.config defines the Solr search index that is used to index experience data. This file is only present if the solution has been configured to use the Solr provider.
- Sitecore.SegmentBuilder.config contains configuration settings related to the Segment Builder.
- ExperienceProfile\Sitecore.ExperienceProfile.config contains configuration related to the Experience Profile feature.
- ExperienceProfile\Sitecore.ExperienceProfile.Client.config contains configuration related to the Experience Profile application.
- ExperienceProfile\Sitecore.ExperienceProfile.Reporting.config defines a number of pipelines that support the data queries and the views used by the Experience Profile application.
Important changes
- Engagement Analytics
- The Contact session and the Analytics session are now two different abstractions. The Contact session uses public session storage, while the Analytics session continues to use private (ASP.NET session) storage. This change allows the xDB to share the Contact session between multiple devices.
- A sophisticated merge mechanism merges contacts as soon as the system is able to identify that they are the same person. As a result, the system no longer contains multiple Contacts with the same ExternalUser name.
- Storing of Contact and Interaction data is now bound to the ASP.NET SessionEnd event.
- The Analytics session is now bound to the ASP.NET session timeout.
- The /App_Config/Include/Sitecore.Analytics.RobotDetection.config file has been renamed to Sitecore.Analytics.Tracking.RobotDetection.config. (411918)
- The /App_Config/Include/Sitecore.Analytics.config file has been split into multiple config files. This has been done to make it easier to configure your servers to support the different server roles: tracking, processing, and/or reporting.
- The Sitecore.MvcAnalytics.config file is now enabled by default. (417564)
- Engagement Analytics reports
- The dedicated reporting database now contains pre-aggregated data and is detached from the collection database.
- The Visitor Overview report has been renamed to Contact Overview to reflect that the system now tracks the activities of a contact across channels and devices.
- Items based on the ReportQuery template now have a Data Source field that specifies the type of report query and where/how the report query is used. Valid values are "collection", "reporting", and "function". These ReportQuery items are used by the Stimulsoft reports (*.mrt files).
- If you write custom code to access reporting data, you can choose between obtaining the data via reporting datasources, the remote reporting service, queries to the xDB collection database, SQL queries to the reporting database, or custom functions written in C#.
- Sitecore.ContentSearch API
- To support using multiple search providers concurrently, the global ContentSearch.DateFormat setting has been removed and replaced by a provider-specific date format string in the field map. This has been done because Lucene and Solr require different date format strings to work correctly. In addition, this lets you index different DateTime fields with different levels of precision. (401341, 403897, 403899, 406432, 408910, 420610)
- The default format in the Lucene configuration for DateTime fields has been changed to include hours, minutes, seconds, and milliseconds. (401341)
- Database schema changes
- The database schema of the Sitecore databases has been modified to make them Azure cloud compatible. You should therefore no longer see error messages when you export the Sitecore databases to Azure, for example, you should no longer see error messages related to unsupported extended properties or deprecated features. (405226)
- All clustered indexes have been removed from the uniqueidentifier (GUID) columns in the master, web, and core databases. This can improve the performance when creating many items, for example, when installing packages or bulk-importing data. (409707)
- The following Microsoft DLLs are now distributed with Sitecore in the /bin folder: (408972)
- System.Net.Http.Formatting.dll
- System.Web.Cors.dll
- System.Web.Http.Cors.dll
- System.Web.Http.dll
- System.Web.Http.WebHost.dll
- The following third-party DLLs have been updated to a newer version. You might have to update and recompile your code if you are referencing any of these DLLs from your code:
- The Newtonsoft.Json.dll has been updated from 4.5.9 to 6.0.3. (412963, 382822, 343887)
- The Stimulsoft DLLs have been updated to from 2009.3.600 to 2013.1.1600. (349906, 382826)
Breaking changes
- The Sitecore.Analytics API has been completely reworked to support the new features and architecture in Sitecore 7.5.
- As a result, existing code that uses the Analytics API will have to be refactored to use the new API. For example, you now need to refer to Tracker.Current.Interaction instead of Tracker.CurrentVisit and you need to refer to Tracker.Current.CurrentPage instead of Tracker.CurrentPage.
- The namespace for the SPEAK API in JavaScript has changed from Sitecore to Sitecore.Speak.
- As a result, any custom page code that is used on SPEAK pages will have to be changed to use the new API for the page to continue working.
- The Sitecore.Automation.MarketingAutomation assembly has been removed. Most of the classes that were present in the Sitecore.Automation.MarketingAutomation assembly have been moved to the new Sitecore.Analytics.Automation assembly.
- The Sitecore.Client assembly contains a number of breaking changes related to Analytics dialogs and applications that have been removed, renamed, or refactored.
- In Sitecore.Kernel, the performance counter classes have been reworked and improved. Some of the changes are breaking API changes.
- In Sitecore.Kernel, the Link, InternalLink, and Image classes that support the corresponding fields in the Content Editor have been refactored.
- In Sitecore.Buckets, the signature of the BucketLink class has been changed.
- The Sitecore.ContentSearch assemblies contain a number of breaking changes related to the new features and improvements, including changes required by the new experience data search index.
- The custom Sitecore.Providers.LinkProvider class overrode the default LinkProvider. The custom LinkProvider has been removed so that SPEAK pages now use the default LinkProvider. (4880)
Deprecated and removed functionality
- SPEAK Framework
- The Sitecore.Speak.Mvc assembly and include file have been deprecated and will be removed in a future release. Please do not introduce dependencies on this assembly.
- Engagement Analytics
- The "Refresh Aggregated Data in the Reports" wizard, which was available in the Control Panel, has been removed.
- The "Update Visitor Classification" wizard, which was available in the Control Panel, has been removed.
- The Send Notifications session end rule has been removed. Instead, the system now sends out session reports by directly subscribing to the session end event of the session state provider.
- The Analytics.DisableDatabase setting has been deprecated. Instead of using this setting, you can now prevent the system from communicating with the collection database by disabling the Sitecore.Analytics.Tracking.Database.config file.
- In Sitecore.Kernel, the GetVisitorEmailAddress pipeline has been removed.
- The SC_ANALYTICS_SESSION_COOKIE is deprecated. The system no longer reads or sets this cookie.
- Analytics reports
- The reports that are rendered using the Stimulsoft third-party library have been deprecated. This includes all reports in the Engagement Analytics application, as well as the item-specific reports available from the Analyze tab in the Content Editor. The reports are still available in 7.5, but will be replaced with new reports based on a different technology in a later release.
- The Sitecore reporting API that is used as a wrapper around the Stimulsoft third-party library has been deprecated. The API is still available in 7.5, but will be removed in a later release.
- Sitecore.ContentSearch API
- The custom field feature has been removed in favor of using computed fields.
- Developer Center
- The Developer Center application (which was deprecated in CMS 7.1 in favor of using Sitecore Rocks) has now been removed from the Sitecore Start menu. The associated items and files will be removed in a later release. (407832)
- Segment Builder
- The following Segment Builder conditions have been deprecated and should no longer be used:
- Business Name
- Campaign was Triggered
- External Keywords
- Goal was Triggered
- Goals were Triggered
- Is in Engagement Plan
- Is in Engagement Plans
- Is in Specific State
- Local Keywords
- Matches Pattern
- Referring Site
- Region
- Traffic Type
- The following Segment Builder conditions have been deprecated and should no longer be used:
Resolved issues
- Engagement Analytics
- The Analytics.Enabled did not disable Analytics completely. For example, the setting did not disable the <initialize> pipeline and scheduled agents. This has been fixed. (367206, 367219)
- If Sitecore did not have a connection to the Analytics database, a website visitor was sometimes presented with an error page. For example, this could happen if the visitor accessed a media URL, or if the visitor tried to visit a page that did not exist. This has been fixed. (376143, 376418, 384565)
- If a visitor visited a URL that contained a campaign ID in the query string and no campaign existed with that campaign ID, the page could take a long time to load. This has been fixed. (408577)
- If a visitor visited a media URL that contained a campaign ID in the query string, the campaign was not triggered. This was also a problem if the query string contained the ID of a goal or a page event. This has been fixed so that campaigns, goals, and page events are triggered correctly in these situations. (371607)
- New traffic type definition items, as well as changes to the default traffic types, were not deployed to the Analytics database. This has been fixed by placing the Traffic Type template in the Analytics Workflow. (380098, 380513)
- The "Sticky" strategy for Page Level multivariate tests did not work correctly. This has been fixed.
- If you configured the system to the SQLServer session state mode, SessionEnd events were not raised correctly. This has been fixed by introducing a new Sitecore session state provider for SQL Server that can invoke the SessionEnd event. (377445)
- If you disabled Analytics for a media item, the system unnecessarily provided requests for this media with access to the ASP.NET session. This has been fixed. (412083)
- The IsFailure checkbox was not selected by default on the page event definition for the Error event. This has been fixed.
- The Details view that you can open from the Analyze tab displayed the headings twice when listing the attributes that are associated with a page. The headings were also displayed twice in the Tracking field on the item. This has been fixed. (407739)
- Engagement Analytics reports
- In the reports under the Sales folder, the visits were not grouped by organization. This has been fixed. (389552, 416259)
- In the Business Overview report, the visits were not sorted by recency and the value of the visit. This has been fixed. (370085)
- Engagement Automation
- In the Supervisor, an error message appeared if you clicked the Cancel button in the Move Visitors dialog. This has been fixed. (350249)
- The Supervisor failed to import users from a CSV file to an automation state if the selected state contained an anonymous user. This has been fixed. (379974)
- In the Supervisor, if you added a user to an engagement plan state for which a timeout was configured, the system ignored the timeout and evaluated the conditions immediately. This has been fixed. (379995)
- When the "Move Visitor to Another State" action moved a visitor to a state for which a timeout was configured, the system ignored the timeout and evaluated the conditions immediately. This has been fixed. (406487)
- When the "Remove Visitor from this Plan" action was executed in an engagement plan, it failed with a DeletedRowInaccessibleException error. This has been fixed. (393738, 386028)
- Sitecore.ContentSearch API
- It was not possible to store DateTime values in different formats using computed fields. This has been fixed by allowing you to specify a format attribute for Date fields and DateTime fields in the field map. (401341)
- When the system tried to resolve the appropriate search index for an item, the ContentSearchManager.GetIndex() method could fail with an ArgumentNullException error and the following message: "Value cannot be null." This typically happened if you had configured your search indexes to not include the item in any search indexes, but it was hard to troubleshoot. This has been fixed by writing a more descriptive error message to the log file. (408906)
- Speak UI dialog boxes
- The InsertLinkDialog could throw the “Content database ‘{1}’ not found.” exception when switching to List view. This has been fixed.
- Sitecore Update Installation wizard
- When you installed a Sitecore update package, the update package installation log file was sometimes missing after the installation. This has been fixed. (414185)
- Setup.exe installation program
- When you installed Sitecore, the installation program created a number of performance counters that were not in use. This has been fixed so that the installation program does not create the obsolete counters. However, the obsolete counters still appear in the Windows Performance Monitor application if you have previously installed earlier Sitecore versions, or if you install earlier Sitecore versions after you install Sitecore 7.5. (328924, 408567, 414380)
- Miscellaneous
- When the Sitecore.Web.UI.HtmlControls.PageScriptManager inserted <script> tags on a page, they were inserted at the beginning of the <head> block. This caused <meta> tags used to select the correct browser rendering engine (e.g. IE10 or IE11) to be ignored. This has been fixed by changing the logic so that the PageScriptManager now inserts the script tags after any meta tags that appear at the top of the head block. This issue affected the ECM module. (410961)
- A concurrency issue in the CoreProcessor.GetMethod() method has been fixed. This problem only appeared when multiple threads executed the same pipeline in parallel, and only if the pipeline had not yet been fully initialized. (414597)
- When you opened the layout details dialog, long placeholder names wrapped to two lines. This has been fixed so that long placeholder names are truncated instead. (412476)
- Speak UI dialog boxes
- The SelectMediaDialog could become unresponsive after a search yielded no results. This has been fixed.
- The dialog associated with the General Link field did not display values provided in some of the fields when reopening the dialog. This has been fixed.
- SPEAK UI Framework
- The Sitecore.Names.Texts class (in the Sitecore.Speak.Client assembly) was not marked by the LocalizationTexts attribute. This has been fixed. (408451)
- When converting an item to the ItemBackbone model, the language and version properties were not properly set as model attributes. This has been fixed.
- SPEAK Business Component Library
- [FilterControl] The facets were listed in the opposite order to the order listed in the Content Editor. This has been fixed.
- [FilterControl] When the search text used with the FilterControl was left blank, the global filters defined in the FilterControl were not applied. This has been fixed.
- [ListControl] The ListControl did not reflect the checked items collection provided during initialization. This has been fixed.
- [ListControl] The checked items collection did not change when the application code updated the bound collection at run time. This has been fixed.
- [ListControl] The ListControl did not always format dates appropriately. This has been fixed. (415155)
- [ListControl] The ListControl sometimes displayed empty icons in lists if the item contained image URL information with an unexpected format. This has been fixed.
- [RadioButton] If you set a radio button value programmatically, this did not work. This has been fixed.
- [SearchDataSource] The $formattedFields property was not added when several formatters were set. This has been fixed.
- [SearchDataSource] The result set included broken link text when a user did not have read access to a referenced item. This has been fixed so that now the result set includes text that indicates whether the item does not exist or is protected.
1.2. Release History for Sitecore CMS 7.2
Some of the issues described on this page contain internal reference numbers. You can use these reference numbers when communicating with Sitecore about a particular issue or feature.
As part of our commitment to continually improving our software and listening to our customer’s feedback, Sitecore regularly releases new versions of our CMS product. Each release undergoes careful quality assurance procedures to minimize the number of issues.
January 26, 2016
Released Sitecore CMS and DMS 7.2 rev.160123 (7.2 Update-6)
Note: This is a product update. Sitecore recommends that you upgrade to this release if it includes fixes that meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit from waiting to upgrade until Sitecore releases a Service Pack for this series. This is especially true in production environments.
To learn more about the versioning system in Sitecore, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
- Item Clones, Content Editor and Item Buckets features were improved
- Improved overall security - several potential security vulnerability fixes applied
- A set of administration pages extended with a number of new tools
- Add changes about Upgrade
Important changes
Improvements
- Content Editor
- 376973: Add a setting that prevents creating an item with a duplicated name on a same level
- 382868: Add support for SVG images
- Item Buckets
- 388622: Add ability to display items of content language only in ‘Multilist with Search’ field
- 388624: Add ability to select items of specific or latest version only in the ‘Multilist with Search’
- Item Clones
- 339260: Add possibility to clone the item without its descendants
- 344196, 371544: Add an option to delete all clones when base item is deleted
- 387584: Add support for internal link between clones
- 344971: Add possibility to sort languages in the language selection dropdown
- 399340: Add Acknowledge option for the “The original item has been moved.” notification
- 381831: Add ability to copy and paste a protected item under itself.
- Administration
- 68008: User Info admin page was introduced. It shows details about logged in user
- 66466: Raw Search admin page was introduced. It allows searching for the specific string in database or on the file system
- 66990: Sql Shell admin page was introduced. It allows executing Sql scripts using the specific connection strings
- 66467: Security Tools admin page was introduced. It provides various login and user management features
- 66472: Database Cleanup admin page was introduced. It allows performing various cleanup operations on specific databases
- 66516: Jobs Viewer admin page was introduced. It provides overview of jobs execution
- 66532: Package Item admin page was introduced. It allows packaging of specific items with their dependencies
- 68295: PublishingQueue Statistics admin page was introduced. It provides overview of the PublishQueue processing
- 68294: EventQueue Statistics admin page was introduced. It provides overview of the EventQueue processing.
Issues resolved
- Archiving
- 421362: RecycleBin incorrectly calculates page count for admin user.
- Caching
- 443763: Wrong work of PropertyStore with case-sensitive keys
- 451362: Settings class caches default values when value in the config file is invalid.
- Engagement Analytics
- 453160: Scan method of the ItemRecords class ignores TemplateID parameter
- 407419: Report layout is broken
- 439368: Sitecore.Analytics.Pipelines.InsertRenderings.Personalization.Evaluate method cannot be fully altered.
- Item buckets
- 408894: The GetDatasourceDependencies processor does not work and throws InvalidCastException
- 408898: Reindexing dependencies causes an infinite loop in case of circular references
- 383160: ‘Semantics’ field shows all versions and languages for tags
- 402604: Search in ‘Treelist/Multilist with Search’ field ignores the Source value
- 410621: ‘Multilist with Search’ field does not support query in StartSearchLocation
- 408011: Language and version of an item disappear in ‘Multilist with Search’ fields
- 404260: The FieldTypeRenderer for the ‘Multilist with Search’ field type is not properly resolved
- 397981: Selected items does not disappear from the unselected box
- 448413: Updating indexes on Content Management could cause exceptions on Content Delivery due to unknown index
- 388614: ‘Multilist with Search’ allows to select a specific language or version of an item but stores only ID of the item
- 407727: Display name in the tagging list suddenly changed to item name
- 455339: Processor Sitecore.Shell.Framework.Pipelines.AddFromTemplate.Execute in pipeline uiAddFromTemplate does not pass the result to next processor
- 412550: Search among results of the ‘Multilist with Search’ returns nothing when contains “must” conditions (“+” symbols in filter)
- 451051: syncMaster strategy updates same item language versions multiple times
- 452712: Bucket folder item is selected when adding new item to the bucket
- 453779: $CurrentLanguage token doesn't get replaced with the content language name
- 452791: ‘Multilist with Search’ field returns no results after clicking the Refresh button
- 444492: ‘Multilist with Search’ field returns no results when custom indexes are configured
- 440949: Filed ‘Name’ is used instead of field ‘Title’ to display field in search results
- 423230, 441841: ‘Multilist with Search’ doesn't work on first load of Content Editor
- 442796: ‘Multilist With Search’ incorrectly translates a query from the AJAX
- 407006: Controls of the ‘Multilist with Search’ field and ‘Treelist with Search’ fields don't work without caching
- 424575: The Go To Item button doesn't work for items from Selected Items List
- 422831: ‘Multilist with Search’ field displays different results before and after clicking the Refresh button if few filters specified
- 407010: Pages number is not constant in ‘Multilist with Search’ or “Treelist with Search’ fields
- 407051: Symbol “+” from the field Datasource is decoded as a space for ‘MultiList with Search’ field
- 416813: Go To Item functionality in ‘Multilist with search’ does not go to the selected item language
- 402800: Page number of ‘Multilist With Search’ field shows confusing results
- 453739: Buckets can be published using Incremental Publish
- 452872: Incremental Publish deletes items moved by Bucket Sync operation
- 449350: Newly created bucket folders are obsoleted in caches and are not added to the PublishQueue
- 416553: Indexing Manager Wizard performs rebuild using the obsolete GetIndexJobOptions method
- 414724: Sitecore adds an empty English version to items after adding them to Item Buckets folder
- 401115: Order Manager application not working with SOLR
- 437821: Content Search Indexes are populated during Sitecore Update package installation.
- Item Clones
- 453398: Published clone can show non-published values from the master database
- 454201: The ‘__Source Item’ field is not cleared after publishing
- 430135: Notification provider is slow
- 428529: The “A field in the original item has been changed” notification doesn’t appear in an item clone when we add a new version of the original item
- 414642: Cloned item Presentation is not updated after incremental publish of its template
- 420916: Moving items is not reflected correctly in clones
- 386215: Inconsistency of Clone/Unclone(Unclone item) commands execution
- 336070: Item clone doesn't reflect template change when it is changed on the original item
- 348308: item:added event is raised before the item becomes a clone
- 367488: Orphaned notifications lock the Content Editor clone notification warnings
- 438555: Every item is read many times from database
- 434765: Changes in the cloned items are not published when you use Incremental Publish
- 434785: Clone items are not picked up by the Smart Publishing
- 441220: Warning isn't appeared during deleting all versions of original item
- 441230: Clone version should be created from the latest version
- 453964: Unclone action removes data in other language versions.
- Content Editor
- 431565: Deleting large set of subitems causes the "Invalid URI: The Uri string is too long" exception
- 432330: Empty "Permissions" area in the "Assign Security Rights" dialog
- 426066: Subitems menu in the Navigate tab does not have a scroll bar
- 410792: In the Page Editor, the Edit the related item option opens the Content Editor with broken markup
- 414200: Wrong location of chunks after adding the separator item to the list of items of the Customize My Toolbar dialog
- 416747: Fatal error causes losing data when the user navigate other item in the Content Tree
- 417272: Absence of confirmation dialog for the Security Presets
- 417889: Session timeout issue of the Favorites button in the Navigate tab
- 404020: General Link field throws uninformative exception when its value is corrupted and the buttons are clicked above the field
- 406348: Confirmation dialog doesn't appear when there are unsaved changes during the switch from Content Editor to Media Library or Workbox
- 406818: Do not translate the title in case it has a value in current language
- 406948: Content Editor freezes while a previewed page is being loaded
- 397066: Open Media Library button doesn't work if Media Library item is not visible in content tree
- 384925: User with language:write set to denied can remove version in this language
- 378250: The long name of a template is not displayed correctly in the Insert chunk
- 381251: Display name dialog shows Item Name instead of Display Name when the Item Key option is enabled
- 382609: Select the value of the ‘Item Name’ field when you click on it
- 316236: Long template names as Insert options cause a scroll bar to be shown
- 316754: Open Media Library button on the image field should open Media Library if entire item tree is not shown
- 328421: Check in unlocks should unlock the selected version of item
- 328877: Multiple controls with the same IDs
- 329492: Temp folder cannot be moved outside of web root
- 342340: It is possible to rename locked item by clicking on its title in the header
- 346837, 379814, 310033: ItemUtil.ProposeValidItemName method returns incorrect values
- 361198: Display name is translated in the item insert options
- 373466: Content Editor fails to load item if its fields contain some encoded symbol
- 433879: Test in Insert Panel is overlapped
- 432459: Text overlay happens on ribbon panel list
- 357597: Display name dialog shows incorrect value when the Item Key option is enabled
- 452241: Links dialog fails if cross-database links are present
- 426406: General link dialog changes the query string value
- 414946: Media browser shows only selected image
- 439119: Query string of the General Link field gets encoded
- 388264: Re-ordering issue in the Presentation Details dialog.
- Media
- 386277: Thumbnails for SVG images return exception.
- Miscellaneous
- 424573: The “Multiple controls with the same ID” error appears in the ItemSecurityEditor.xaml.xml control when the trace debugging is enabled
- 453112: Installer for Sitecore 7.2 Update-5 requires .NET 4.5.1
- 443748: Database properties are updated on every click during login process
- 437844: Sitecore Update package installation would freeze Sitecore due to Descendants rebuild.
- Multibrowser fixes
- 405361, 375356: Line separator character ( ) breaks RTE functionality.
- Performance Improvements
- 331608: Item loading speed for SQL Server can be increased
- 452796: Item loading optimization: reduce the complexity of SQL query.
- Pipelines
- 449959: Sitecore.Diagnostics.Statistics.AddPipelineTiming suffers from excessive locking.
- Publishing
- 401203: Clones publishing may lead to huge overhead and performance issues.
- 453501: Incremental publish republishes redundant version of the item.
- Oracle
- 363485: Sitecore CloneNotificationsCleanupAgent doesn't work.
- Rich Text editor
- 407683: Unicode char “\0x2028” stops field from being saved and can break Content Editor
- 342993: The content of the EditHtml dialog in Rich Text Editor isn't transmitted to the handler.
- Sitecore.ContentSearch
- 452387: BaseAsynchronousStrategy.OnIndexingStarted event may fail if EventQueue is empty
- 406929: The RemoteRebuild strategy is not invoked if indexes were rebuilt using the Indexing Manager Wizard
- 452577: Asynchronous strategies skip Copied and Restored events.
October 23, 2015
Released Sitecore CMS and DMS 7.2 rev.151021 (7.2 Service Pack-2, originally released as 7.2 Update-5)
Note: This is a product Service Pack. Sitecore recommends customers to install service packs for any feature release that the customer has installed. This is especially true in production environments.
To learn more about the versioning system in Sitecore, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
- A number of improvements in the Item Clones feature
- Improved overall security – several potential security vulnerability fixes applied
- A number of performance improvements
- A number of fixes in parallel publishing and indexing
Improvements
- Content Editor
- The ability to change the order of tabs in the Content Editor has been implemented. A New Tab Sort Order field has been added to /sitecore/templates/Sitecore Client/Content editor/Editor template in the core database. (318593)
- Sitecore.ContentSearch
- A number of methods in the LuceneSearchContext and LuceneDeleteContext classes have been made virtual. (420013)
- Item Clones
- Item Clones had its own workflow information which did not reflect changes made from the original item. This has been changed so that you can configure Sitecore to inherit workflow information from the original item by using the ItemCloning.InheritWorkflowData setting. (336081, 364573)
- Changes to an original item, like adding a new version or creating a version in a new language, were not automatically applied to clone items. This has been fixed by introducing setting ItemCloning.ForceUpdate. This setting allows you to configure Sitecore to automatically create a version for an item clone when a new version is created for original items. This setting is also considered for other operations such as creating a first version in new language or creating a child item. (343487, 344195, 364553)
- The performance of the get item operation for both regular and clone items has been increased by introducing a separate shared field called ‘__Source Item’. This now allows you to keep a reference to original item. (436659)
- Media
- The setting MediaResponse.VaryHeader has been added to Sitecore configuration. This allows you to specify the value for the “vary” header that has been added to media response stream. By default, no “vary” header is selected. (365655)
- It was not possible to disable the logic responsible for checking and removing old blob values when updating or creating media items. On large databases, checking whether the media stream should be removed from the database may have taken a lot of time. This has been fixed so that the new setting RemoveUnusedBlobsOnSave has been added. The setting is responsible for controlling if unused blobs should be deleted from a database when a media item is saved. (436978)
- Miscellaneous
- The dbo.Fields view now contains the WITH (NOLOCK) statement and is consistent with the changes made in the #397521 bug fix. (451265)
- The ability to allow non-administrator users to see all items in the Recycle Bin application has been implemented. This permission can be configured on the item /sitecore/system/Settings/Security/Policies/Recycle Bin/Can See All Items in the core database. The default behavior has not been changed. (354831)
- Support for the “format” attribute has been added to the FieldRenderer control. The attribute allows specifying the format for the following field types: date, datetime, number and integer. (373185)
- Performance
- The Cleanup Database operation scripts have been optimized. The operation is now several times faster than it had been. (378825, 419345, 435339, 436985, 437739, 444348, 448452)
- Attaching a new image to a media item or uploading a new media item may take a long time on large databases. This may cause deadlocks on large solutions. To address this issue, the scripts responsible for scanning for orphaned media blobs have been optimized. (391556, 430993)
- Rebuilding the Link database would sometimes fail and throw a timeout exception. This has been fixed so that link database processing has been split into batches. The size of the batch is controlled by the LinkDatabase.MaximumBatchSize setting. (431417)
- The Save item operation has been optimized to minimize the number of requests to the database. Operation performance has doubled. (431718)
- The path logic for getting items has been optimized to minimize the number of database requests. It now no longer loads all siblings for all processed ancestors (436011)
- The DatabaseCacheWriteDisabler class has been implemented. This allows reading data from cache but does not allow updating. This disabler should be used when you need to process a number of items but do not want to add these items to the cache, for example, indexing, publishing, cloning, and so on. (438527, 448645)
- The CreateCultureInfo class has been reworked to avoid global locking. Code that uses this class should now perform better. (435527)
- Code for the ItemPathsCache class has been optimized for improved erformance. (434425)
- Queued events processing was done synchronously during an instance restart. This had delayed startup time. This has been fixed so that queued events are processed asynchronously during startup. (442162)
- The ItemsContext class has been reworked to now use a thread static dictionary. This performs better than the ThreadData API. (405080)
- The AsyncEventProvider class has been reworked not to add duplicated tasks into ManagedThreadPool. (442194, 442467)
- A number of classes have been reworked to better perform in a multithreaded environment. (443702, 443768)
- Setup.exe installation program
- The Japanese installation program has been deprecated. A new feature has been added to the default installation program that enables installation in an additional language and configuring SC to use a new language as the default. (440166, 442195)
Breaking Changes
- IntervalAsynchronousStrategy has been reworked to use EventQueue instead of History engine. This means that in case EventQueue is disabled the strategy will not be corking correctly. (378584)
Issues resolved
- Configuration
- An HttpException exception had been raised when Sitecore was configured to store icon caches outside the website root in the Icons.CacheFolder. This has been fixed. (329493)
- Caching
- The security cache had not updated correctly after changing security rights on workflow items. As a result, some actions like Edit were available for content items even if they are denied on workflow state items until cache is cleared. This has been fixed. (364063)
- The security cache had not updated correctly after an item was moved in the content tree. This has been fixed. (402736)
- The IndexOutOfRangeException exception had sometimes appeared in Sitecore log files when using the get item API. This has been fixed so that the ItemPathsCache cache has been corrected. (439802)
- The ArgumentNullException exception had sometimes appeared when trying to get an item from cache on a ‘high load’ solution in a multithreaded environment. This has been fixed. (449017)
- Engagement Analytics
- Tracker.EndVisit had not behaved correctly, which could lead to incorrect tracking of user visits. This has been fixed. (377049, 432581)
- Item buckets
- The Unbucketing operation had not worked correctly and may have caused lost data when Sitecore was configured to use a custom bucket structure. This was done by changing the value of the setting BucketConfiguration.BucketFolderPath. This has been fixed. (421604)
- The cache had not updated correctly on remote servers when bucketing items in a scaled environment. As a result, duplicated buckets structures could be created. This has been fixed.(406507)
- Bucketed items were not published if items from the bucket structure did not have a version in the publishing language. This has been fixed. (423267, 423944)
- Item Clones
- Workflow information had not registered correctly when creating a clone of a version in new language by clicking Accept on the “Version was created” notification. This has been fixed. (423100)
- The unclone operation had applied only to the latest versions of the clone and had not uncloned the whole item. This has been fixed so that the unclone operation now converts all clones to a regular item. (440579)
- The validations for __Source and __Source Item fields have been added to the Content Editor. These fields are used by the Item Clones feature. These items must be synchronized. You must never change these fields manually. (440997)
- Content Editor
- The spelling operation had not applied to the single-line text fields. This has been fixed so that these fields are included in the spell checking list. (313080)
- Spell checking was always performed using English as the default language. The operation had not respected the selected content language. This has been fixed. (374365)
- A JavaScript error had appeared when changing item ownership. This has been fixed. (342562)
- Server- and client- side item validation had not worked properly. For example, it was not possible to create an item with Danish characters on the client-side buut you were able to do this on the server side. This has been fixed so that you cannot create items with non-English characters in the name from API. (342622)
- Aliases which did not have a reference to a content item were sometimes created when creating an alias for an ancestor located deep in the content tree. This has been fixed so that an alert is shown when trying to create an alias for a content item that does not have aliases for its ancestors. (343567)
- Content language had not been preserved when switching between applications in Content Editor. This has been fixed. (346249)
- The InvalidOperationException exception would occur when editing a profile card in Card Editor dialog box. This exception occurred only when the AutomaticDataBind setting was changed to true. This has been fixed. (361245)
- The message ‘The Validator service could not be invoked because of an error.’ had been shown when using the Markup button on Proofing chunk of Review tab in Content Editor ribbon. This has been fixed. (442888, 447238)
- The Device Editor dialog box could fail with an ArgumentNullException when the user clicked OK in the dialog box. This could happen if the item did not have any presentation assigned to it and the user had not made any changes in the dialog box. (359491)
- Unsaved changes to a content item in the Content Editor might be lost without notification when you added a new language using Language selector menu. This has been fixed. (421328)
- The Broken Links gutter processed all item versions in the current language instead of reporting problems for current version only. This has been fixed. (404252)
- Media
- ResizeProcessor in the getMediaStream pipeline had changed a picture’s colors when resizing an image according to media URL parameters. This has been fixed. (423175)
- An error would occur where some media files that were placed into the /upload folder would fail to be picked up and added to Media Library. The problem was related to the buffer size of the FileWatcher, which could not be changed. This has been fixed so that a new setting that controls the buffer size has been added. The setting name is Media.FileSystemWatcher.BufferSize. (323775)
- Options selected in the Advanced Upload dialog had not applied when uploading media. This has been fixed. (439231)
- Miscellaneous
- The InvalidOperationException exception might sometime appear when executing the “cleanup unused blobs” step of the cleanup database operation. This exception terminated the entire cleanup database task. This has been fixed so that other steps of the operation are executed even if the “cleanup blobs” step was not successful. (310319)
- The description of the validateRequest attribute in /system.web/pages node was outdated and had not explained its default value correctly. The description has been corrected. (322178)
- The Workflow State gutter had allowed you to execute workflow commands even when the user did not have appropriate access rights. This has been fixed. (325141, 337841, 382843)
- Some content items links had not processed correctly and were not added to the link database. This has been fixed to add support for extracting and updating links for a number of field types. (395100, 392621)
- The confirmation dialog shown when the operation of creating new user was canceled had not supported localization to other languages. This has been fixed. (435707)
- Virtual users had remained logged into Sitecore, but lost all assigned roles when their user session had expired. This has been fixed so that a virtual user does not lose its roles while it is logged in. (365855, 441004)
- Context items for the request to the item with “-” (dash) character in the name was not resolved correctly when Sitecore was deployed on an operation system using .NET Framework 4.6. This has been fixed so that changes in .NET 4.6 API were taken into consideration during item name processing. (449251)
- The FileWatcher implementation had not handled ThreadAbortException exception correctly. This had sometimes resulted in a high CPU load. This has been fixed. (386565)
- The Memory Monitor (MemoryMonitorHook class) had initialized even when Sitecore was configured to disable performance counters. This has been fixed. (394956)
- Serializing an item after it had been renamed had caused the item and all serialized children to be deleted. This has been fixed. (400558)
- Sitecore may show the "Item Not Found" page as a result of requests to the media item when the media prefix or the name of the item contain characters included in the "encodeNameReplacements" configuration section. This has been fixed. (414259)
- Any roles that had been added to a virtual user after it was logged in were not preserved between requests. This has been fixed. (381352)
- When a virtual user logged in to a shell site, the InvalidOperationException error had occurred if they tried to access to http://<hostname>/sitecore URL. This has been fixed. (408264)
- A requested item had not resolved correctly if the item content path contained a combination of characters specified in replace node of encodeNameReplacements section. (408384, 416567, 416797, 431208, 434065)
- ‘The data could not be loaded’ message was shown when navigating between pages in the User Manager application. The message appeared when Sitecore was configured to use item display names in the link generation API. This has been fixed. (387348)
- The RuleFactory.ParseRules raised an exception when parsing empty field values. This has been fixed. (431195)
- The Placeholder Settings dialog was not fully translated. This has been fixed. (436694)
- A modification to the Sitecore.Data.Database.Properties collection that is used to access the Properties table resulted in the PropertyChangedRemoteEvent event being recorded in the EventQueue table event if code was wrapped in the EventDisabler. This has been fixed. (420602)
- Sitecore had not process routed POST requests correctly when running the 'Integrated' mode. This has been fixed. (338084)
- The information added t o Sitecore log file in the case of an exception that appeared inside the Retryer scope did not contain information about the exception. This has been fixed. (435355)
- Multibrowser fixes
- [IE11] The Publishing timeline rendering was corrupted in the Publish Viewer dialog. This has been fixed. (415170)
- The Create New User dialog layout had been broken when it was opened in the Danish client language. This has been fixed. (416151)
- Page Editor
- The NullReferenceException exception would appear when clicking the Delete Page command in the Page Editor and then choosing Cancel in confirmation dialog. If the Ok button was clicked, the page was removed but not would not refresh. A similar error was shown when trying to delete the item in the Media Library application. This has been fixed. (404366, 439567)
- The Delete Page command caused NullReferenceException and would not redirect to the parent item. This has been fixed. (49533, 404366)
- The Insert component command resulted in an uncaught exception for empty components. This has been fixed. (49459, 359113)
- The Workflow command would not refresh a page. This has been fixed. (49538, 405652)
- The Page Editor did not redirect after inserting or moving a page in Firefox. This has been fixed. (49534, 404378)
- A Javascript error occurred when inserting a sublayout into an item, if the placeholders were not set in Presentation. This has been fixed. (51557, 380995)
- The unwanted <h1> tag was added to the field value when you edited an item with the Edit command. This has been fixed. (49502, 389855)
- A page would not refresh after deleting when using the EditFrame command. This has been fixed. (49440, 351106)
- A page would not refresh after removing a datasource item via EditFrame. This has been fixed. (49497, 387856)
- An error message appeared if you tried to change the value of an Integer field to blank. This has been fixed. (49517, 398156)
- Inline editing did not work correctly in Firefox when you would copy and paste content from an edited field. This has been fixed. (51474, 330685)
- Inline editing in Rich Text fields in Chrome added unwanted span tags. This has been fixed. (49562, 415254)
- The Before and After properties of the FieldRender were added to field value on save. This has been fixed. (49434, 318619)
- The Select Media dialog had displayed incorrectly on a page that contained a large amount of content. This has been fixed. (49528, 403109)
- The injection of a <script > into page's <head> had broken Device Simulation functionality. This has been fixed. (49527, 402719)
- The [No text in field] label was not shown when a Rich Text Field was empty in Chrome and Safari. This has been fixed. (51577, 390673)
- The additional parameters on the command template were not used in the execution of the command. This has been fixed. (49515, 397460)
- Field parameters values were not passed to popup dialogs. This has been fixed. (49535, 404386)
- The displayed languages in the Page Editor drop down were not synchronized with the Content Editor. This has been fixed. (51530, 367416)
- Preview mode had ignored publishing restrictions for media items. This has been fixed. (54015, 398694, 49519)
- A rendering had beem lost after moving a presentation component in some cases. This has been fixed. (49728, 422629)
- There were Javascript errors when deleting an item in the Page Editor. This has been fixed. (51618, 407731)
- The [No text in field] watermark did not show up after deleting the field's contents. This has been fixed. (49451, 355773)
- The Move component button did not work from the More section. This has been fixed. (49523, 399717)
- The Edit Component Properties command did not properly handle simultaneous editing. This has been fixed. (49503, 389967)
- The Replace Rendering button broke page rendering if placeholders were not set explicitly. This has been fixed. (49490, 379073)
- It was not possible to add a rendering to a placeholder on MVC Layout in the Page Editor. This has been fixed. (51605, 402308)
- The Page Editor was not refreshed after deleting an opened page. This has been fixed. (49549, 410777)
- Renderings had sometimes disappeared after changing position. This has been fixed. (49439, 349911)
- The Page Editor commands had sometimes redirected to an external URL. This has been fixed. (51573, 387029)
- The Date Selector ignored client language of Sitecore. This has been fixed. (51553, 379588)
- The Choose an Image dialog had displayed images from a different language version. This has been fixed. (51560, 382594)
- The language switching functionality had been broken in the Page Editor when useDisplayName="true" and languageEmbedding="never". This has been fixed. (49473, 367029)
- The placeholder path of a child component was not updated when moving parent component. This has been fixed. (49453, 356895)
- An empty rendering could not be inserted using the Page Editor. This has been fixed. (49556, 412546)
- The content tree was not shown in the Content Editor inside the Page Editor. This has been fixed. (60274, 360049)
- The inline content editor had broken the Page Editor in some cases. This has been fixed. (49433, 361703)
- The Page Editor’s ribbon had overlaid the html elements on the page. This has been fixed. (49466, 361703)
- The Page Editor was not refreshed after changing the preview date in Firefox. This has been fixed. (49552, 411608)
- The Save button was disabled in Page Editor after having performed the Publish process. This has been fixed. (49662, 421692)
- Page Editor mode did not remember the selected device after navigating to another page. This has been fixed. (51494, 340034)
- A datasource’s location was shown incorrectly in a multivariate test. This has been fixed. (49512, 395557)
- Renaming an item in the Page editor had resulted in a 404 error. This has been fixed. (51467, 316350)
- It was still possible to execute a workflow action if the item was locked by another user. This has been fixed. (50022, 430898)
- Firefox reloaded a page with a modal dialog window on. The modal dialog action was not executed. This has been fixed. (49529, 403433)
- A jQuery-UI theme was ignored in different Page Editor modes. This has been fixed. (49546, 409077)
- The Replace with another rendering feature did not work in some instances. This has been fixed. (49487, 377543)
- Simultaneous editing using the Component Properties dialog resulted in an "error occurred" warning and a lost layout. This has been fixed. (68227)
- Using backspace when performing inline editing cut the content in the field. This has been fixed (51627, 416711)
- A new item was not created if page had not been saved. This has been fixed. (65719)
- Potential security vulnerabilities
- Opening the Security Editor application for any database was possible using a direct link to the application with the appropriate query string parameters. This action was available for logged in user only with appropriate permissions for using this Security Application but without access to specified database. This has been fixed. (368660)
- User cookies in Preview mode were not marked as HTTP-only and were available from JavaScript code. This has been fixed so that cookies are marked as HttpOnly flag. (422755)
- The JavaScript code that defined the style attribute of some HTML elements in the Rich Text Editor field could be executed even when the editor control was configured to remove any scripts from its content. This has been fixed. (422845)
- User that did not have write permission could see items in a workflow using the RSS view. This did not make sense, as these users did not have permission to execute any commands. This has been fixed so that items shown in the RSS view correspond to ones that are shown in Workbox application. Additional changes were made to protect executing commands from using direct URLs. (350933, 426266)
- The password recovery page had shown different validation messages for cases when a user with specified name already exists in Sitecore database. This has been fixed so that a generic validation message is shown. (363086)
- A potential cross-site scripting vulnerability in the media upload control has been fixed. (415861)
- Some potential cross-site scripting vulnerabilities in the logic responsible for processing the query parameters in the SiteContext class have been fixed. (416948)
- Some potential cross-site scripting vulnerabilities in the Content Editor application, Edit User dialog, and Sitecore Desktop have been fixed. (428986, 429290, 432461)
- The Microsoft assembly System.Web.Mvc.dll - version 5.1.20129.0 - has a security problem and could allow security feature bypass. This has been fixed. The assembly has been updated to version 5.1.20821.0 where the problem was fixed. (449856)
- The Search tab in Content Editor had returned the search result event after a user session was expired. This has been fixed so that user is redirected to the Login page. (429472)
- Publishing
- When publishing an item that had child items, sometimes not all of the child items were published when the Publish related items option was enabled. This was due to a setting which did not allow publishing the same item twice, but had not considered publishing child items. This has been fixed. (436451, 438574, 436732)
- The publishing process had not recovered correctly after an application pool restart. This had occured when Sitecore was configured to recover publishing by setting Publishing.Recovery.Enabled to true, and the Publishing.CheckSecurity setting had been set to true. This has been fixed. (436593)
- Items in an item bucket may not have published correctly when system bucket items had publishing restrictions. This has been fixed. (437012)
- The publish:complete:remote setting had not fired in a scaled setup after publishing was completed. This has been fixed. (414237)
- The same items were published several times when publishing with the Publish Related Items option. This has been fixed. (417352)
- The same items could be published several times when incremental publish had been initiated while a long-running republishing was in progress. This has been fixed. (442806)
- The Publish dialog would sometimes hang in the case of a distributed publish. This has been fixed. (442136, 443168)
- The number of threads used during parallel publishing was sometimes higher than what had been defined in Publishing.MaxDegreeOfParallelism setting. Some of these threads were not used efficiently and were idle. This has been fixed. (404571, 443590, 448131)
- Smart publishing of an item with related items had skipped linked items when parallel publishing was used. This has been fixed. (443931)
- Incremental publishing had sometimes been interrupted with the ArgumentOutOfRangeException exception. This problem was related to the order of processing changes from publishing queue. This problem also could be the reason for skipping and do not publish some items when processing publishing queue. This has been fixed so that changes are now processed in the correct order. (388455, 424542, 442548, 449010, 449439, 449446)
- The UpdateStatistics processor and the JobStatus class have been optimized to perform better when parallel publishing is used. (442966, 442967)
- Smart publishing items that have child items associated with them skipped any moved child items if Sitecore.Publishing.Parallel.config was enabled. This has been fixed. (443868)
- The log message ‘##Publish Item: Name=(null), Uri=(null) …’ might sometime appear in the log file during a smart publish that occurred when the traceToLog option enabled. This has been fixed. (444032)
- Smart publishing had sometimes skipped some items in the publishing queue when the Publish related items and Publish children options were selected, and published items had links to child items. This has been fixed. (444269)
- Language items had been published when using Incremental publish even when they were not changed. This has been fixed. (448419)
- Executing the AddItemsToQueue processor may have taken a long time without any notification. This has been fixed so that logging has been added to the processor. (449599)
- Some items from a bucket might not be published when parallel publishing was used. This has been fixed. (449784)
- Oracle
- Fields with empty values had taken their values from Standard Values items even when the ResetBlank option for the template field was unchecked. This has been fixed so that a specific value for this field is stored in Oracle database if value for the field is empty. (332520, 442351)
- The script for getting data from the EventQueue table has been optimized. (438462)
- The OracleDataApi.StripParameters method used a redundant lock in its code. This has been fixed. (441972)
- Rich Text Editor
- The Spellcheck button did not work in the Rich Text Editor field when the Medium profile was selected. This has been fixed. (344879)
- A JavaScript error would sometime appear when pasting text from Word after stripping the font. This has been fixed. (436526)
- It was not possible to accept changes in the Rich Text Editor dialog. A JavaScript error had appeared in the browser console if the editor was opened using the Show Editor field command. This has been fixed. (437752, 439217)
- An additional <br/> tag was added to the end of the text when saving the Rich Text Editor field value. This has been fixed. (440087, 439137)
- The message ‘The operation could not be completed. Your session may have been lost due to a timeout or a server failure. Please try again.’ would sometimes appear when working in the Rich Text Editor even when the session had not expired. This has been fixed. (414299)
- Sitecore.ContentSearch
- Using the ThenBy expression for string types in search queries returned the results in the incorrect order. This has been fixed. (394944)
- The MaxFacets setting was not used when performing a faceted search. As a result, faceted searches had sometimes consumed too much virtual memory or resulted in unfinished and unreturned results. This has been fixed so that the setting is now used in the FieldValuesBitSets class. (423445)
- The search provider called the ndex Optimize command on every item move, item copy event or index refresh action. This has been changed so that Optimize instruction is not executed too often. (429040, 434231)
- The ‘urllink’ computed field used a hard-coded URL option to store values differently than links from the live site. This has been fixed. (395199)
- When the master and web indexes were configured to use the same SOLR core, it was impossible to differentiate the index data between the indexes. As a result, making an item unpublishable lead to removing the item from both indexes. This has been fixed so that the _uniqueid index field value has been extended with information about the index name. (426743, 410176)
- Some items were still added to caches during the index rebuild operation even when Sitecore was configured to disable database caches during indexing (setting ContentSearch.Indexing.DisableDatabaseCaches was set to true). This has been fixed. (422606)
- All versions of the item were indexed even when a single versioned field was updated. This has been fixed so that only one specific version is indexed. (441549)
- When indexing a new version of an item, the previous version was not re-indexed. As a result, there had been two versions of the same item in the same language marked as the latest version in the index. This has been fixed. (447642)
- The Index optimization task did not work correctly and had exited without committing any changes to the index. This has been fixed. (405979)
- There were too many fatal errors in the Crawling log file when using a remote rebuild strategy. This error had prevented the index rebuild operation from performing. This has been fixed so that current information is now written with the Debug level instead of Fatal. (427361)
- The PublishEndAsync strategy had updated the same item language versions multiple times. This has been fixed. (411726, 429429, 442321)
- Too many type PropertyChangedRemoteEvent event were added to the EventQueue on every item operation that had indexing enabled. The problem was due to information about every index update operation being stored in the Properties table in database. Every update to this table raised the PropertyChanged event. This has been fixed so that a new property store provider called IndexFileSystemPropertyStore has now been implemented. Now you can configure indexes to use the IndexFileSystemPropertyStore provider to save index specific information that should not be shared between different instances. These events are not added to EventQueue. (417664)
- An error with message ‘Index sitecore_master_index was not found’ might appear in the log files of a distributed Sitecore environment when a Sitecore instance, for example a Content Management environment, had attempted to update the index that does not exist on another Sitecore instance, for example a Content Delivery environment. This has been fixed. (411992, 451163)
- Indexing was stopped and would never resume if a Content Delivery server was restarted during the indexing process when triggered by the onPublishEndAsync strategy. This has been fixed. (435903)
- IntervalAsynchronousStrategy was using the History table to gather data for indexing. This part of API will soon be made obsolete. The strategy has been updated to now use EventQueue instead. (378584)
- Changes made to a shared field were indexed in a single version of the item. This has been fixed so that all versions of the item are indexed when a shared field is changed. (435697)
- The onPublishEndAsync and intervalAsyncMaster strategies did not index correctly changes such as Item Copy and Item Move. This has been fixed. (435808, 440402, 440415)
- Data to be added to the index was not selected correctly after a full index rebuild. As a result, the same data had been indexed multiple times. This has been fixed so that the most recently indexed data is saved after the index rebuild has finished. (439944, 442487, 442415)
- The Update index operations in SitecoreItemLanguageCrawler class were performed with the database caches disabled option. This has been fixed so that setting ContentSearch.Indexing.DisableDatabaseCaches is considered when indexing. (440269)
- Every item change operation that was performed had passed to the index to be processed, even when this should not occur. This has been fixed to optimize the filtering logic. (440374, 441688)
- Obsolete item versions might be present in search indexes after publishing. This has been fixed. (440383)
- Asynchronous strategies have been optimized to minimize the number of requests to the EventQueue. (441715)
- Index update strategies had been triggered multiple times on Content Delivery servers after publishing. This has been fixed. (429806, 443037)
- The Context site was not passed to all indexing threads when parallel indexing had been enabled. This has been fixed. (414831)
- The code that was responsible for reading index configuration, for example included fields, included or excluded media fields, has been optimized for better performance. (422566)
- The IntervalAsynchronousStrategy and OnPublishEndAsynchronousStrategy strategies processed indexes synchronously. This has been fixed so that strategies process different indexes asynchronously now. (436334)
- Computed fields were processed sequentially even if parallel indexing was enabled. This has been fixed so that computed fields are processed and added to a document simultaneously when parallel indexing is enabled. (442399, 450086)
- The value stored in _displayname index field depended on the context user profile settings and the value of the Content Tree - Item Names option defined in the Application Options dialog of the Content Editor. This has been fixed. (443320)
- Updated item data indexing did not use all available indexing threads when parallel indexing was enabled. This has been fixed. (443862)
- The wrong index could be used after rebuilding an index with the SwitchOnRebuild feature configured. This has been fixed. (444301)
- The same instance of the FieldReaderCache was shared between different indexes. This could sometime lead to a situation where the from field reader was used for working with index field. This has been fixed. (447586)
- IntervalAsynchronousStrategy produced an excessive number of jobs for the item created operation. This has been fixed. (426127, 428904)
- WebDAV
- Drag&Drop did not work when Sitecore was installed on the Windows 8 OS. This has been fixed. (398373, 439140)
- Drag&Drop did not work in IE11 when the https protocol was used. This has been fixed. (416373)
- Additional fixes
- This entry provides reference numbers for scenarios reported by Sitecore customers that have been addressed as part of the other fixes or are no longer reproducible. (311396, 313663, 314947, 319290, 322698, 328258, 328392, 337388, 337758, 339742, 340919, 347413, 350062, 358056, 373019, 382415, 386214, 393188, 403044, 406836, 406922, 425143, 311016, 406887, 399928)
- Deprecated and removed functionality
- The processor Sitecore.Pipelines.Loader.ShowHistory as defined in <initialize> pipeline has been made obsolete and will be removed in future versions. The processor was using an API that is not compatible with the latest IIS versions. (406369)
April 09, 2015
Released Sitecore CMS and DMS 7.2 rev.150408 (7.2 Update-4)
Note: This is a product update. Sitecore recommends that you upgrade to this release if it includes fixes that meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit from waiting to upgrade until Sitecore releases a Service Pack for this series. This is especially true in production environments.
To learn more about the versioning system in Sitecore, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
- Improved overall security - several potential security vulnerability fixes applied
- Improved overall performance of LinkDatabase – logic of updating links reworked
- Enhanced index consistency under heavy system load – fixes in the Sitecore.ContentSearch namespace
Important changes
- Sitecore failed with ArgumentException on load when one of the system folders was missing. This has been fixed so that if the system folder, for example /upload, /data/packages, /sitecore modules, etc., is missing it will be created automatically. The warning message is added to a log file. (424146)
Improvements
- When configuring the Sitecore.Tasks.CleanupEventQueue agent, you can now configure it to only keep data for a few hours. Previously, the minimum was one day, which was too long when the system was under heavy load and resulted in too much data in the Event Queue. This led to slow data processing and decreased overall performance of Sitecore. Alternative agent configuration has been introduced and you can now specify the time interval (up to seconds) to keep event queue data. The new configuration node name is TimeIntervalToKeep. (392673)
- The LinkDatabase API has been improved to minimize the number of database requests. (420040, 420045)
- A number of methods in various classes defined in Sitecore.ContentSearch namespace have been made virtual. (422565, 392354)
- A reworking of the code of the Lucene provider has decreased the number of objects created in memory while working with index data. The change decreases memory usage and processor resources. (422016)
Issues resolved
- Breaking Links dialog
- Depending on the selected option, the Breaking Links dialog processed and removed or changed links from all versions of the field for the processed item, despite the fact that some links were not broken. This has been fixed so that only broken links are processed. (364576, 407998, 410791, 431720)
- Caching
- MaxSize column value in the table on the /sitecore/admin/cache.html page was not rendered correctly for some cache size values. This has been fixed. (392420)
- The Delta column value sometimes showed an incorrect value on the sitecore/admin/cache.html page. The problem was related to accuracy of calculations. This has been fixed. (423448)
- Negative values in the Delta column were not formatted correctly on the sitecore/admin/cache.html page. This has been fixed. (423312)
- The Presentation Cache settings configuration specified on an item level sometimes did not override the settings configured on the Standard Values item. This has been fixed. (406575)
- Content Editor
- The XHtml validator sometimes did not allow items to be approved for publishing and showed the error: "The item must render as a valid XHtml document." This was related to the problem that the rich text field contained some Unicode codes that were not converted to the named characters by some browsers. This has been fixed. (356982, 368833)
- The message "The selected item could not be found" appeared when using the Open Media Library command for the empty Image field in the Content Editor. This has been changed so that the "Select an image from the Media Library first" message is shown instead. (307728)
- The Transfer Item to Another Database application did not copy the blob value when transferring media items. This has been fixed. (326313)
- The Unlock All command in the My Locked Items dialog changed the Updated By field value to sitecore\Anonymous in all processed items. This has been fixed so that the command sets the current user in the Updated By field. (338528)
- The Archive Version Now command always archived the latest version of the item, regardless of the selected item version in the Content Editor. This has been fixed so that the command respects the current version of the item. (393977)
- A message about removing content data appeared when removing the language item, despite the fact that the value of the Languages.AutoRemoveItemData setting was set to false. This has been fixed so that the message is not shown when content data is not going to be removed. (398527, 423551)
- The validation warning "Version x will be published instead" was rendered twice in the Content Editor. This has been fixed. (422815)
- The Content Editor Validation bar was rendered as a warning, even when item field validators reported errors. This has been fixed. (425302)
- The UnauthorizedAccessException exception sometimes appeared when updating base template field values for content templates. This happened because the current user did not have Write permissions to the content items based on the modified template. This has been fixed. (425351)
- Engagement Analytics
- The robot detection logic now handles 'touchstart' events in the browser to better support detection of touch-screen devices. (420817)
- Miscellaneous
- SQL Server transaction deadlocks occurred when multiple threads were using fast query to get items from the database and the publishing operation was in progress. This has been fixed by changing Fields View in the master and web databases so that it uses WITH NOLOCK when reading from the fields tables. (397521)
- When using the Web Forms for Marketers module, a JavaScript error sometimes occurred in the Content Editor.js file. This has been fixed. (408004)
- The Request Query String was modified by Sitecore API when processing a request. This was necessary to prevent XSS attacks. This has been fixed by moving security protection code to a different place in the system so that the Query String value is not modified during request processing. (411684)
- When a user tried to log in to Sitecore and the number of already logged in users exceeded the limit, the user was redirected to the /sitecore/shell/Applications/Login/Users/Users.html page without any information in the log file. This has been fixed so that a warning message is added to the log file in this situation. (423542)
- The Create New template dialog let users select a non-template item as a base template. This has been fixed by adding validation. Now the validation message appears if a non-template item is selected as a value for a base template field. (425180)
- The error message that informs that an item name contains invalid characters was always shown in English. This has been fixed. (425755)
- The ArgumentNullException exception appeared when you opened the Security Editor application in the Sitecore instance that contained assemblies built with Visual Studio 2013. This has been fixed by adding the PageInspector:ServerCodeMappingSupport key with the Disabled value to the <appSettings> node in the Web.config file. (426167)
- The WebUtil.GetSessionTimeout() method when called from a background thread (HttpContext.Current was null) always returned a hardcoded session timeout equal to 20 minutes. This has been fixed so that the method returns the default session timeout value from the system.web/sessionState configuration node. (429749)
- A number of media templates contained the wrong references to the Standard Values item. This has been fixed. (430247)
- Multibrowser fixes
- [IE11] When you selected Rich Text Editor field in Page Editor almost all Web Edit commands were missing. The problem was related to the incorrect browser detection. This has been fixed. (410443)
- [IE11] The Content Editor application stopped working and did not react to any mouse clicks after using the context menu in the Open File dialog. This has been fixed. (410548)
- [IE11] When using the Web Forms for Marketers module, a JavaScript error sometimes occurred in the Sitecore.js file. This has been fixed. (433165)
- Oracle
- It was not possible to log in to Sitecore backend with the Oracle data provider configured. The log file contained the HttpUnhandledException exception with the text: "Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context”. This has been fixed. (432350, 430555)
- Package Designer
- If you selected the Preview tab for any dynamic package source in the Package Designer application, a NullReferenceException appeared. This has been fixed. (398676)
- Page Editor
- You could not clear the link value rendered by sc:link control in the Page Editor. This has been fixed by introducing the Clear command in the field Web Edit menu. (422760)
- The content of the Insert Sitecore Media dialog, opened from the Rich Text Editor field in the Page Editor, was not refreshed after executing the Delete context menu item for removing an image from the Media Library. This has been fixed. (422762, 426988)
- Potential security vulnerabilities
- A number of potential cross-site scripting vulnerabilities have been fixed in the Rich Text Editor control. (426123)
- The Edit User dialog did not check whether session cookies had expired before trying to log a user in again. This could potentially be used to copy session cookies and update user data, even if the previously logged in user had logged out. This has been fixed so that session cookies cannot be reused after the user has logged out. (428746)
- Publishing
- A user who had previously been a member of the Sitecore Client Advanced Publishing role was able to republish content, even after the user was removed from that role. This has been fixed. (416480)
- Renamed items without language versions were not always published when Smart publish was used. This has been fixed. (429666)
- Changes applied to bucket items that did not have any workflow assigned were not published when the Incremental Publish option was used. This has been fixed. (413254)
- Rich Text Editor
- The Image Map Editor dialog sometimes showed an invalid version of the image in the preview area. This has been fixed. (427585)
- A NaN value appeared in the Image Properties dialog opened from the Rich Text Editor field, when changing values in the Width or Height fields with the aspect ratio option locked. This has been fixed. (410521)
- Sitecore.ContentSearch API
- The Lucene provider did not correctly apply the boosting of index fields for boost factors specified on the EndsWith and StartsWith methods. This has been fixed. (399560)
- Content Search indexes configured to use the Lucene provider might be inconsistent on Content Delivery servers after publishing, especially when content is being heavily updated on Content Management servers. This has been fixed. (429114)
- Indexes configured to use the intervalAsyncMaster index update strategy might be missing some items in the index under heavy load. This has been fixed. (414069)
- The Content Search index might miss some data after recycling the application pool in the process of updating the index. This has been fixed. (398139, 426254)
- It was not easy to implement a custom Solr search index because the existing classes were not extendable enough. This has been fixed so that a number of methods in the SolrSearchIndex, SolrIndexOperations, CrawlerSolrIndexOperations, and SolrIndexSummary classes have been made virtual. (392354)
- When an exception occurred during processing of a search request to a Solr server, Sitecore wrote a generic message to a log file that was not enough to understand the reason for the exception. This has been fixed so that a detailed Solr exception is added to the log, if there is an exception. (416733)
- The LuceneQueryMapper generated redundant brackets when parsing the Linq expression that contained the AND operator. This has been fixed. (421041)
- The TooManyClauses unhandled exception sometimes appeared when a too generic search query was executed in custom code. This has been fixed so that you can configure the maximum number of clauses and it is equal to 4096 by default. (426025)
- On Japanese installation with Item Buckets feature enabled facets is search interface were sometimes not be translated to a client language. This has been fixed so that new computed field, called ‘culture’ was added to an index. This field contains the ISO code of the language and used for facet localization. (405588)
- Additional fixes
- This entry is used to provide reference numbers for scenarios reported by Sitecore customers that are addressed as a part of the other fixes or no longer reproducible. (410851, 399698, 414632, 405166, 421832, 398043, 398094, 425257)
January 08, 2015
Released Sitecore 7.2 rev. 141226 (7.2 Service Pack-1, originally released as 7.2 Update-3)
Note: This is a product Service Pack. Sitecore recommends customers to install service packs for any feature release that the customer has installed. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
The main highlights of this update
- The Publishing related-items logic has been reworked to improve publishing performance.
- A number of fixes have been made to the Content Editor to prevent losing unsaved changes.
- Support for the indexing queries that contain stop words has been implemented.
Important changes
- The way that Sitecore authentication tickets are stored in the Properties table of the Core database has been reworked so that it works correctly on a high Sitecore load. Authentication tickets are now stored separately for every user. (416668)
Breaking changes
- Sitecore.ContentSearch API
- The IFieldMap interface has been extended with new GetFieldConfigurationByFieldTypeName method. As a result, custom implementations of this interface will now need to be updated.
Improvements
- This release incorporates all the changes made for 7.1 Update-3. For additional information about these changes, please refer to the release notes:
- In 6.6 Update-3, the <renderField> pipeline was modified to HTML encode the field value when rendering single-line text fields (ref. no. 327905). Previously you couldn't configure types of the fields to apply this logic to. This has been fixed by adding a new Rendering.HtmlEncodedFieldTypes setting to the Web.config file that specifies a pipe-separated list of field types that should be HTML encoded when rendered by the <renderField> pipeline. (384680)
- The processing of the search queries that contained stop words has been improved for the Lucene search provider. (383054, 403153, 406813)
- Support for the Sitecore query has been added to the Datasource Location field. The query should start from ‘query:’ word. (358790).
- A number of public methods from the SitecoreIndexableItem class have been made virtual so that now you can override the default implementation. (415942)
Issues resolved
- Caching
- The ItemPathsCache has been optimized to work in multithreading environments. (422525)
- Content Editor
- In the Content Editor, changes to item sort order values were not considered once a parent item had subitem sorting specified. This has been fixed so that subitem sorting is reset when any command from the Sorting chunk is applied to the child item. (374742, 379757)
- When the search interface was used to insert a Sitecore link inside a Rich Text Editor field, the link to the current item was inserted instead of the one selected in the search results. This has been fixed. (407682, 419474)
- Unsaved changes to a content item in the Content Editor might be lost without notification when you used a number of ribbon commands. This has been fixed. (320612, 424914, 363653, 364185, 391848)
- Engagement Analytics
- In a scenario of high load with load balancing configured for CD servers and analytics enabled, you would sometimes see the concurrency violation error messages in the Sitecore log files. This was related to the lack of resources assigned to process all the analytics data. Another possible reason was that the analytics database might not be available for some time and there were not enough memory to keep all the analytics data. This has been fixed by compacting and merging analytics data related to the same interaction. (384840, 406447, 387354, 412709)
- Some analytics objects (for example, Sitecore.Analytics.Tracker.CurrentVisit) were not initialized correctly after recycling the application pool and contained null values. This has been fixed. (407833)
- The robot detection logic now handles 'touchstart' events in the browser to better support detection of touch-screen devices. (420817)
- Some page-event related data was not available in custom conditions when triggering registered events. This has been fixed. (408253)
- Item buckets
- Thai Analyzer from Lucene.Net was not fully implemented and could sometimes throw Not Supported exceptions. The analyzer has been removed from the default Lucene index configuration. The default analyzer will be used instead. (420234)
- The Site computed field had an issue and stored names of all registered sites in the system. This has been fixed so now it only stores sites that indexed items belong to. (414604)
- Miscellaneous
- When Sitecore was configured not to remember the last logged in user name (the Login.RememberLastLoggedInUserName setting is set to false) an exception could sometimes occur if the name or password was typed incorrectly several times. This has been fixed. (390596)
- When a request to the Sitecore site contained only the host name and language code without a trailing slash (e.g. http://<hostname>/en), Sitecore would add default.html to the URL. This has been fixed so the default page is not added to all requests in the format http://<hostname>/, http://<hostname>/language_code, http://<hostname>/<language_code>.html, http://<hostname>/language_code/. (392036, 392042)
- When the URL that was used for redirecting users after login contained a pipe character (‘|’), Sitecore would sometimes show an exception. This has been fixed. (379277)
- The new ParametersDictionary property has been added to the Sitecore.Web.UI.WebControl class. This property maps the value of the WebControl.Parameters to the Dictionary<string, string> object type. (369293)
- During a high Sitecore load with intensive item operations and cache reloads, Sitecore.Globalization.Translate.Text API might sometimes return incorrect translations for the given key. This has been fixed. (407379)
- If a virtual user was logged in to a shell site, the InvalidOperationException error occurred when they tried to access to http://<hostname>/sitecore URL. This has been fixed. (408514)
- Sitecore configuration has been changed to use different retryer instances for every database object so that the active retryer for a database does not block the work with other databases. (422504)
- The new Processing.MaxDegreeOfParallelism setting has been introduced. This setting controls the number of locks that can be stored in the LockSet collection that controls parallel execution. (422516)
- The new eventSettings section has been added to the Web.config file. This node controls the list of settings for different event types. By default it contains settings for the item:saved:remote event that controls the number of saved item fields to be serialized and passed to the remote server. (422510)
- Multibrowser fixes
- [Chrome]An argument exception appeared when you added roles to users in the New and Edit User dialogs. This has been fixed. (422242)
- [IE11]The Drag and Drop command was not visible on the Folder tab in the Media Library. This has been fixed. (425950)
- [Firefox]After uploading files in the Media Library and logging out from Sitecore, users would experience the ArgumentException error and were not able to log in to the Sitecore shell. This has been fixed. (426012, 426398)
- Localization
- The event handlers, responsible for keeping the translation cache in sync with content data, have been reworked to minimize the number of cache reloads. (422509)
- Logging
- When Sitecore logging was configured to show debug messages, there were a lot of log entries related to multivariate testing which showed the stack trace information. These messages were not really useful. This has been fixed so these messages are no longer included. (413041)
- Page Editor
- When a popup dialog on a page that contained vertical scrolling was opened, the page would automatically be scrolled to the top. This was fixed. (423737)
- Performance issues related to the Sitecore.ContentSearch API
- The IndexSearcher object was recreated every time an item was indexed instead of this only being done after the changes were committed to the index. This has been fixed so that searches performed while the publishing operation is in progress, work with the data committed into the index (420007)
- Performance of parallel indexing has been improved by reworking the parallel indexing API. (416550)
- The HierarchicalDataCrawler has been optimized to minimize the amount of memory consumed when crawling indexable objects. (422523)
- Potential security vulnerabilities
- A non-persistent cross-site scripting vulnerability has been fixed in the TreelistEx control. (401208)
- A non-persistent cross-site scripting vulnerability has been fixed in the Engagement Analytics reports. (417529)
- Publishing
- When new publishing was initiated while other publishing was in process, the publish dialog would sometime show an incorrect publish status – Initializing instead of Queued. This has been fixed. (354806)
- When publishing with the Publish Related Items option enabled, you would sometimes notice that too many items were published. This was related to the same items being published more than once. This has been fixed. (404551, 406823)
- After publishing an item in a newly created language, all language items that did not have versions in this language would sometimes be unpublished from the target database. This has been fixed. (409139)
- Every time an incremental publish was performed, data from the publish queue that could not be published (because it had publishing restrictions that prevented items from being published) was moved back into the publish queue. This was incorrect – data should only be back to the publish queue if it cannot be published due to security restrictions. This has been fixed. (418132)
- Security applications
- The Cancel button did not close the Create User wizard. This has been fixed. (414999, 414138, 408900)
- Sitecore.ContentSearch API
- The sort operation in search queries was not working correctly for numeric fields. This has been fixed. (421958)
- WebDAV
- WebDAV Drag and Drop functionality was not working in the Media Library and from the File Drop Area field type. The ArgumentOutOfRangeException exception appeared in Sitecore log files. This has been fixed. (422446, 421845)
- The ArgumentNullException error would sometimes appear when you used the Remove command that belonged to the File Drop Area field. This has been fixed. (425947)
May 30, 2014
Released Sitecore CMS and DMS 7.2 rev. 140526 (7.2 Update-2)
Note: This is a product update. Sitecore recommends upgrading to this release when the fixes included meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update:
- Includes all the fixes from 7.1 Update-2
- Security vulnerability fixes to make Sitecore more secure
- SPEAK Select Media and Upload Media dialog improvements
- Fixes to SPEAK UI dialogs, the SPEAK framework, and the SPEAK Business Component Library
Important changes
-
Deprecated Features
- The Sitecore.Speak.Mvc assembly and the Sitecore.Speak.Mvc.config include file have been deprecated and will be removed in a future release. Please do not introduce dependencies on this assembly.
Improvements
- This release incorporates all changes made for 7.1 Update-2. For additional information about these changes, please refer to the release notes:
-
Media API
- The system is now configured with a number of additional mime types to have better native support for various video and image formats, such as mv4, avi, and flv video formats (in addition to several other video formats), as well as dib, jpe, jfif, tiff, and tif image formats. (407773, 357955, 407375)
- The logic for parsing mime type definitions has been improved so that multiple definitions for a mime type are merged instead of replacing previous definitions. As a consequence, you no longer have to comment entries in the mimeTypes.config file if you add a mime type definition in the web.config file that is already defined in the mimeTypes.config file. (408581, 409733)
-
Field types
- The Treelist and TreelistEx classes now support Sitecore query in the source for these field types. (319249)
-
SPEAK UI Framework improvements
- The jQuery component used by SPEAK was upgraded to 1.10.2. (394496)
-
SPEAK UI Select Media dialog improvements
- The SelectMediaDialog now shows the Media Library path.
- The SelectMediaDialog now provides a Recent Uploads by me option.
- The SelectMediaDialog now deselects the selected image when the user initiates a new search.
-
SPEAK UI Upload Media dialog improvements
- The UploadMediaDialog now automatically switches back to the SelectMediaDialog after an upload completes.
- The UploadMediaDialog now provides better status information during the upload process.
- The UploadMediaDialog now shows the target location for uploaded media.
- The UploadMediaDialog now lets the user change the target location for uploaded media.
-
SPEAK Business Component Library improvements
- Accordion: The control now provides an image field displayed to the left of the header text.
- ActionControl: You can now disable individual actions.
- ActionControl: You can now specify that an action opens a new browser window and how you want the window to appear.
- ComboBox: The component now populates its drop list using a data provider.
- ComboBox: The WidthPolicy property has been added.
- ListBox: The WidthPolicy property has been added.
- ListControl: The Width field has been added to the ColumnField settings item. The field accepts pixels or percentage (suffix with %).
- ListControl: The ColumnField Formatter field now supports #Nx (numeric) and #Px (percentage) formatting, where x is the number of rounded decimals displayed. If x is not provided, it defaults to 2.
- ListControl: An AllowMultipleColumnSorting property has been added with default value of true.
- MessageBar: A number of bindable properties have been added including: hasMessages, hasInfoMessages, hasWarningMessages, and hasErrorMessages.
- ProtectedBorder: A component that only displays content if the current user has the appropriate access rights has been added. The component has three relevant properties: RequiresRead, RequiresWrite, and DataSource. The ProtectedBorder only renders its contents if the current user has the indicated access rights on the properties item referenced by the DataSource.
- SilverlightFrame: This release adds a new SilverlightFrame component.
- TreeView: A ShowHidden property has been added (the default is false). The TreeView shows hidden items when the property is set to true.
- Uploader: A number of new properties let you customize various aspects of the component, including text on the Browse button and the ability to show or hide the Description and Alternate Text fields.
-
Content Editor
- A new IsVisible property on the GutterRenderer class allows you to hide items programmatically from the Quick Actions Bar. (408492)
-
ItemSerializer improvements
- The ItemSerializer class now supports the inclusion of standard values and/or default values in the XML representation of an item using the new overload GetItemXml(Item, ItemSerializerOptions). In addition, you can configure the system to always include such values in the XML representation of all items by adding the new settings named ItemSerialization.AllowStandardValues and ItemSerialization.AllowDefaultValue to the web.config file. For example, this can be useful for customers that use the Lionbridge connector for item translation. (404082, 403286, 403290)
Issues resolved
-
Potential security vulnerabilities
-
Sitecore Corp. would like to give credit to Dan Erdahl at PC Connection, Inc., for the discovery of one of the variants of the following vulnerability and for his cooperation:
A potential security vulnerability related to the sitecore_icon.ashx handler has been fixed. (409770, 407921, 400290) - A potential JavaScript injection vulnerability has been fixed in the Media Library. (391105)
-
Sitecore Corp. would like to give credit to Dan Erdahl at PC Connection, Inc., for the discovery of one of the variants of the following vulnerability and for his cooperation:
-
Security API
- If you were logged in multiple times in different browsers, or if multiple users were logged in using the same user account, when you logged out from one of the browsers, all sessions would be terminated. This has been fixed by changing the keys of Sitecore client authentication tickets so that different browser sessions for the same user no longer share the same authentication ticket. (405020, 405190)
-
Virtual users
- If a virtual user opened an item in Preview mode, an InvalidOperationException error occurred when the system tried to render the ribbon. This has been fixed. (405265, 405020)
-
Scaling and multi-instance setups
- In a multi-instance setup, each item save operation led to the following error message in the log files of remote instances: "ERROR Exception while handling event Sitecore.Data.Eventing.Remote.SavedItemRemoteEvent." This happened because the remote event args were not extracted correctly. This has been fixed. (404817)
- In a multi-instance setup, a NullReferenceException error would sometimes occur on instances when they handled a SavedItemRemoteEvent. This happened if verbose EWT tracing was enabled in the IIS for the remote instance. This has been fixed so that this type of error no longer appears in the log file when verbose EWT tracing is enabled. (386035)
-
Publishing
- When you published a large number of items, the Publish dialog sometimes reported that the publishing process was unexpectedly interrupted. This happened if the publishing operation took longer than the value in the Publishing.TimeBeforeStatusExpires setting. This has been fixed so that the status does not expire while the publishing job is still running. (399699)
- In the Publishing target template and the Workflow State template, the fields for configuring preview publishing targets were not marked as shared. This could cause content not to be published to preview publishing targets. This has been fixed by making the relevant fields shared. (407415)
- The system did not publish items that had been created by a rule action until the caches were cleared. This prevented the Email Campaign Manager module from handling triggered messages correctly because the messages depended on rules to create and publish campaign items. This has been fixed. (407544)
-
Login page
- When you tried to access a specific application using a bookmark or a direct link without being logged in, the Sitecore login page did not always redirect you correctly to the URL after you logged in. This has been fixed. (408763)
-
Content Editor
- When you clicked the Browse button above an Image field, the Select Media dialog displayed "No items found" and the following message appeared in the log file: "[Item Web API] Invalid parameter(s): facetsRootItemId, search, root, searchConfig, sc_content, language, format, pageIndex, pageSize." This has been fixed. (408126)
- When you used the search field above the content tree and clicked a search result, the system opened the first version of the selected item. This has been fixed so that it now opens the latest version that contains the string that you searched for. (349735)
-
Page Editor
- When you added a new component to a page and selected the Create New Content option, an error occurred with the following message: "An instance of Sitecore.Data.Items.Item was null." This has been fixed. (408641)
-
Rich Text Editor
- When you clicked the Upload button in the Document Manager in the Rich Text Editor, an error message was displayed. This has been fixed by hiding the Upload button in the Document Manager. (407100)
- In the Rich Text editor, if you inserted an external media URL (pointing to a media item in a different Sitecore solution), the system indicated that the Rich Text field contained a broken link. This has been fixed. (361173, 342848)
-
Media Library
- The Image Editor allowed you to make changes to protected media items. This has been fixed by disabling the Edit in Image Editor button when a protected media item is selected, as well as disabling the Save button in the Image Editor if a protected media item is opened in the application. (403910)
-
General Link field type
- If you had inserted any type of link into a General Link field (such as an internal link, an external link, or a JavaScript link) and then opened the dialog to edit the link, the text boxes in the dialog did not display the relevant values for the link. This affected both the SPEAK and the non-SPEAK dialogs. This also affected the General Link with Search field. This has been fixed. (405356, 405542, 409483, 405854, 401631, 401632, 401634, 408743)
-
Layouts and renderings
- The Select the Associated Content dialog did not handle multiple data sources correctly. It only used the first data source and ignored any additional data sources. This has been fixed. (389483)
-
Sitecore.ContentSearch API
- When the system performed incremental index updates or reindexed a subtree, the SitecoreItemCrawler class did not respect the Root attribute for the index and added all reindexed items to the index. This happened because the SitecoreItemCrawler.IsAncestorOfThe() method always returned true. This has been fixed. (406670, 405105, 409030)
- If you were using a sharded setup for your indexes, the system did not always select the relevant index to use based on the item path. As a result, you would sometimes not get any search results when you used the Search tab in the Content Editor or in the various dialogs. This has been fixed. (401650)
-
Item buckets
- If you disabled item buckets, certain minor parts of the item bucket functionality were still enabled. This has been fixed. (408100, 408122, 408124, 408116, 408125)
-
SPEAK UI dialogs
- Several dialogs (InsertLinkDialogTree, InsertSitecoreItemDialogTree, and SelectMediaDialogTree) showed hidden items in the TreeView component when hidden items were not visible in the Content Editor. This has been fixed. (402822)
- Some dialogs forgot the default folder set in a field template when you navigated between views in the dialog. This has been fixed. (403132)
- The InsertAnchorDialog did not display the anchor text properly. This has been fixed.
- The InsertInternalLinkDialog generated 'alt' tags when it should have generated 'title' tags. This has been fixed. (405189)
- The InsertLinkDialog handled single quotes (') and other special characters incorrectly. This has been fixed. (405250, 406384)
- The InsertLinkDialog did not populate the GeneralLink field with the same content as previous versions. This has been fixed. (401631)
- The InsertLinkDialog did not show the link attributes stored in the General Link field. This has been fixed. (401632, 401634)
- The InsertLinkDialog lost track of the default path in the content tree if you switched to the TreeView and back again. This has been fixed. (406750)
- The InsertLinkDialogTree dialog's Insert Link button was enabled even when no item was selected in the tree. This has been fixed so that the Insert Link button is now disabled when no item is selected.
-
SPEAK UI Select Media dialog
- In the SelectMediaDialog, when you selected a category, such as 'All image files' and then selected a different category before the first request was complete, the second request was ignored, but the corresponding category appeared selected. This has been fixed so the dialog now disables the category links until the request for a new category is complete.
- In IE9, the SelectMediaDialog closed when you pressed the Enter key after typing text in the search field. This has been fixed. (399914)
- The SelectMediaDialog did not allow you to upload a media file to a specific location in the media library. This has been fixed. (400809)
- The SelectMediaDialog did not always search the correct database for images. This has been fixed. (401184)
- The SelectMediaDialog did not support the uploading of all image types. This has been fixed by adding the following mime types to the web.config file: dib, jpe, jfif, tiff, and tif. (401419)
- The SelectMediaDialog did not select the media item stored in an image field. This has been fixed. (401635)
- The SelectMediaDialog date filter did not work. This has been fixed.
- The SelectMediaDialogTree sometimes used the wrong language when attempting to locate media items. This has been fixed. (403021)
- The SelectMediaDialogTree sometimes used the wrong language when attempting to locate media thumbnails. This has been fixed. (403010)
-
SPEAK UI Upload Media dialog
- The UploadMediaDialog sometimes became unresponsive and then displayed an exception if you tried to upload a very large set of images. This has been fixed.
- The UploadMediaDialog Description field allowed the TextArea's width to be resized inappropriately. This has been fixed. (401448)
-
SPEAK UI Framework
- The Speak.Html.MinifyScripts and Speak.Html.MinifyStylesheets settings did not use the correct default values if the settings were removed from the configuration file. This has been fixed in the configuration file so that the default values in the code and the comments now match.
- A standard component unnecessarily required a class to work. This has been fixed.
- The SPEAK Build 1.pdf file in the standard CMS installation was obsolete. This has been removed. (401488)
- The '1000 – composite.js' file was obsolete. This has been removed.
- Previously it was not possible to override the default waitSeconds setting for Require.js in SPEAK. This has been fixed so that the configuration setting Speak.Html.RequireJsWaitSeconds (which has the default value of 7) has been added to allow administrators to override the Require.js waitSeconds setting.
- The sitecoreify.css file included a misspelled padding attribute, spelled 'pdding'. This has been removed from the css file.
- The actionRequires and conditionRequires lists on the Rule class were not cleared between requests, causing the lists to grow unnecessarily. This has been fixed.
-
SPEAK Business Component Library
- ActionControl: The 'text' property was not readable from the client. This has been fixed.
- ActionControl: When you returned to a page with an ActionControl, the control failed to remember which Actions you had selected as favorites. This has been fixed.
- ActionControl: The updateActionsStatus method on the ViewModel was misspelled as updatectionsStatus. This has been fixed.
- ApplicationHeader: If you added multiple components to the Actions placeholder, the system did not format the components appropriately. This has been fixed.
- Border: It was not possible to associate the Scrollbar behavior with the Border component. This has been fixed.
- ComboBox: It was not possible to select a value via JavaScript. This has been fixed.
- ComboBox: The DataSource property previously linked to the content of the drop list, which was inappropriate. This has been fixed so that the DataSource property now links to the settings item for the component. The content of the drop list is now populated via the Items property, which is usually bound to a data provider.
- DatePicker: If the format field was set to some valid formats, the date component failed to set the date appropriately. This has been fixed.
- DatePicker: If you used the new Date() method in JavaScript, the system did not apply the correct date for the component. This has been fixed.
- Frame: Developers were not able to set the Frame height, width, and sourceUri properties from the client side. This has been fixed.
- HyperlinkButton: If a developer added a click action in JavaScript, the component responded to a user click even when the isEnabled property was set to false, and the design time click event would also be raised. This has been fixed so that the button now respects the isEnabled property and only raises the programmatically added event.
- HyperlinkButtonGroup: The component forced all the words in a label to be in sentence case. This has been fixed so that the label is no longer modified.
- Image: The background property did not provide any functionality and sometimes caused errors. This has been fixed by removing the property.
- IconHyperlinkButton: It was not possible to set the NavigateUrl from the client code. This has been fixed.
- ListBox: The selectedItem property returned null rather than the correct item. This has been fixed.
- ListBox: The DataSource property previously linked to the content of the drop list, which was inappropriate. This has been fixed so that the DataSource property now links to the settings item for the component and the content of the drop list is now populated via the Items property, which is usually bound to a data provider.
- ListBox: It was not possible to access the selectedItem and selectedItemId from the client side code. This has been fixed.
- ListControl: The component was not displayed properly after resizing the page (in Firefox). This has been fixed. (401704)
- ListControl: The sort image icon behavior was reversed. This has been fixed.
- ListControl: The component did not reflect the default sorting settings provided. This has been fixed.
- ListControl: The change event for checkedItemIds and checkedItems properties (added with a MultiSelectBehavior) only raised an event when the toggle button was not selected. This has been fixed.
- ListControl: If a field value was stored in long format, date columns were not formatted correctly. This issue has been fixed.
- ListControl: Date columns were not formatted correctly for DateTime fields. This has been fixed.
- ListControl: The $convert_id_to_display_name would search in the wrong database for the display name. This has been fixed.
- ListControl: The Scrollbar behavior did not work if the ListControl was included in a Dialog. This has been fixed.
- ListControl: The AppendLanguageParameter method failed if the $icon property did not exist in the provided JSON object.
- MessageBar: The component threw an exception if the message was triggered in the JavaScript page code. This has been fixed.
- Scrollbar: The scrollbar would not be displayed if it was not visible when the page was originally rendered. This has been fixed.
- SmartPanel: The Dimensions property was misspelled as Dimension. This has been fixed.
- SubAppRenderer: The component sometimes raised the 'too much recursion' JavaScript errors in the console. This has been fixed.
- TabControl: Components, which displayed popup areas such as an ActionControl, could be clipped when these were placed near the bottom edge of a tab. This has been fixed.
- TabControl: The component produced HTML code with duplicate IDs. This has been fixed.
- ToolTip: The Animation property was obsolete and has been removed.
- TreeView: It was not possible to set the ClickFolderMode and SelectMode from the server side. This has been fixed.
- TreeView: The SelectMode 'multi' worked like 'multi-hier'. This has been fixed.
- UploaderInfo: The component's viewModel.files property was always empty. This has been fixed. (401304)
-
Multibrowser fixes
- [IE11] When you used the Japanese client language and opened the Sitecore Start menu, the options in the menu did not use the Meiryo font. This has been fixed. (407414)
- [IE10] When you clicked a user, role, or domain in the User Manager, Role Manager, or Domain Manager, the size of the grid would sometimes change so that it no longer filled the available space. This made it difficult to use the applications. This has been fixed. (410240)
- [IE] In the RSS Feed Design dialog, the Preview box extended down beyond the OK and Cancel buttons. This has been fixed. (402623)
-
Seup.exe installation program
- The setup.exe performed an unnecessary check for Microsoft MVC 4 as a prerequisite for the installation. This has been fixed by removing this check. (405892)
-
Localization
- When you assigned insert options to an item, the dialog showed the item name of the selected inserted options instead of their display name. This has been fixed. (407424)
-
Miscellaneous
- If you requested a URL that contained additional path information (meaning that HttpRequest.PathInfo had a value), the SiteResolver sometimes failed to parse the URL correctly and threw an ArgumentOutOfRangeException error, and you were either redirected to the Not Found page, or you saw an error page instead of the requested page. This has been fixed. (311387, 401458)
- In very rare cases, the ASP.NET worker process terminated if the requested URL contained a Windows device name (such as NUL or LPT1) in the URL. This has been fixed by adding a relaxedUrlToFileSystemMapping="true" attribute on the httpRuntime element in the web.config file. (401456)
- When Sitecore initialized, the Factory class sometimes created duplicate instances of objects, while only one of the instances was utilized by the system. For example, this could lead to duplicate cache instances or duplicate database instances. This happened if multiple threads were calling the Factory for the same object in parallel, and this led to a higher memory usage than necessary. This has been fixed so that the Factory no longer creates duplicate object instances. (375201, 393351)
- If you requested a URL that contained a quote character or other characters that are not valid in a file name, Sitecore failed with an "Illegal characters in path" error message in the FileUtil.GetExtension(string) method. This has been fixed by introducing a new overload for the WebUtil.GetRequestExtension() method that returns an empty string in such cases. (388283, 388284)
- If you created an alias that contained a pipe-character in the external link, the alias did not work correctly. When a visitor used the alias, a page appeared with the following error message: "Illegal characters in path." This has been fixed. (396695)
March 18, 2014
Released Sitecore CMS and DMS 7.2 rev. 140314 (7.2 Update-1)
Note: Sitecore CMS 7.2 Update-1 is specific to the Japanese market only. For non-Japanese markets, please use the 7.2 Initial Release.
注釈:本リリースは日本市場向けです。日本語環境にサイトコアをインストールされる場合は、Sitecore 7.2 Update-1 をご利用ください。
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Important changes
- When you install Sitecore using the Japanese setup.exe, all item bucket and Sitecore.ContentSearch functionality is now disabled by default. To enable the functionality, change the value of the BucketConfiguration.ItemBucketsEnabled setting from false to true and use the Indexing Manager to rebuild all the Sitecore.ContentSearch indexes. 402380)
New features
- It is now possible to disable all item buckets and Sitecore.ContentSearch functionality using the new BucketConfiguration.ItemBucketsEnabled setting in the Sitecore.Buckets.config file. (398925)
- When this functionality is disabled, Search tabs do not appear in the Content Editor or in dialogs, all item bucket commands are hidden in the UI, the Indexing Manager is not available in the Control Panel application, and the BucketManager API ignores calls. In addition, all background processes related to indexing are disabled. (398925, 403858, 400821, 399186, 403852 )
- However, when you enable Standard Fields, you still see the Item Buckets and Indexing sections, even when this functionality is disabled. (398925)
Improvements
- Multilist with Search and Treelist with Search field types
- The Treelist with Search and the Multilist with Search fields were not consistent, even though they offered very similar functionality. For example, the Treelist with Search field did not have the "Refresh" and "Go to item" buttons. This has been changed so that the fields are now identical, the only difference being that the Treelist with Search field still allows the user to change the start location of the search. (398476, 398417)
- You can now configure Multilist with Search fields so that they allow the user to change the start location of the search. To enable this functionality, add an EnableSetNewStartLocation=true parameter in the source of the field. (398476)
March 11, 2014
Released Sitecore CMS and DMS 7.2 rev. 140228 (7.2 Initial Release).
Note: This is a feature release. Sitecore recommends upgrading to this release when the fixes included meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The CMS 7.2 rev. 140228 initial release includes all the fixes from 7.1 Update-1.
The main highlights of this release:
- Publishing improvements, including new features, performance improvements, user experience improvements, better configurability, and bug fixes.
- SPEAK UI framework improvements: a number of new components are available in the business component library. In addition, a number of issues have been fixed in the SPEAK UI dialogs, the underlying SPEAK UI framework, and the business component library.
- Item Bucket improvements, including user experience improvements, better configurability, and bug fixes.
- Sitecore.ContentSearch improvements, including new features, better configurability, and bug fixes.
- Multivariate testing is now configured per language.
- The Engagement Analytics logic for detecting whether a visitor is a robot has been reworked and improved.
- Support for Internet Explorer 11.
- Sitecore MVC now supports Microsoft ASP.NET MVC 5.1.
Documentation that has been updated for CMS 7.2
- Installation Guide
- Content Author’s Cookbook
- Marketing Operations Cookbook
- SPEAK Component Reference
- SPEAK Developer’s Cookbook
- Developer’s Guide to Item Buckets and Search
- Sitecore MVC Reference
- Browser Configuration Reference
System requirements
The following system requirements have changed:
- Sitecore 7.2 requires Microsoft ASP.NET MVC 5.1. To make installation easier, the Microsoft MVC DLLs are now distributed with Sitecore in the /bin folder. (397112, 405366)
- Microsoft Internet Explorer 11 is supported by CMS 7.2.
- Microsoft Internet Explorer 8 is no longer supported, starting with CMS 7.2.
New features
-
Multivariate testing in different languages (397964)
- Multivariate tests are now configured per language. This allows you to test different content or different component designs in each language. As part of this change, you can no longer configure and run a test across all language versions. Before you upgrade to this version, you should stop any running tests and select a winner. If any tests are running when you upgrade, they are stopped and the data about which variations that were most successful will be discarded.
- You can run tests on multiple languages at the same time. When you select a winner, it is the winner for all language versions, but it does not stop other tests in other languages. If subsequently you select a different winner for a test in another language, that winner will be the new winner for all the language versions.
-
Publishing
- Preview publishing targets: This feature allows you to publish items to pre-production sites before the items reach the final workflow state. You use this feature by configuring one or more publishing targets as preview publishing targets and associating them with one or more non-final workflow states. For example, you can use this feature to publish content in a Testing workflow state to a QA site, or you could have a Review workflow state that publishes items to a preview site to allow non-Sitecore users to review your content. See the updated Content Author's Reference and Cookbook for more information. (399481, 401602)
- Experimental support for publishing recovery: To make publishing operations more robust when using the Sitecore Azure module, the system can now be configured so that it restarts publishing operations that were not completed, typically due to a server restart or a system failure. When Sitecore starts, the system checks if any publishing operations did not complete and restarts the publishing job with the same parameters as the original job. You can activate this experimental feature by enabling the Sitecore.Publishing.Recovery.config.example include file. (399488)
-
Other new features
- A new web.config setting named Preview.AsAnonymous lets you configure the system to use the current user account when you preview an item instead of switching to the extranet\Anonymous user account. (351992, 351992)
- It is now possible to configure Sitecore to create a new thread for each job instead of queuing jobs in Sitecore's managed thread pool using the new Jobs.ExecuteInManagedThreadPool web.config setting. This new feature is not enabled by default, meaning that jobs are queued to Sitecore's managed thread pool. To use the new feature, change the setting to false. (399530, 369305)
- The search function above the content tree, the quick search function in the task bar, and the classic Search application now all use the Sitecore.ContentSearch indexes by default instead of the legacy Sitecore.Search indexes. The new Search.UseLegacySearchEngine setting in the Sitecore.ContentSearch.config include file lets you switch back to using the Sitecore.Search indexes if you need to. (386881, 402280, 402231, 404760, 402631)
Improvements
-
Engagement Analytics
- The logic for detecting whether a visitor is a robot has been reworked and improved so that it is now better at detecting robots, including robots that execute Javascript, emulate mouse events, and evaluate JavaScript timeouts. As a result, of this change, you might see the number of visitors and visits in your Analytics reports drop because now, in most cases, the system filters out more robot visits.
- The Page Event template contains the new Customer Intelligence template section, with three new fields (Track as Latest Event, Show in Events, and Event Image). These fields are currently reserved for future use and are not yet used in any reports. (398728)
-
Publishing
- The Publishing.PublishEmptyItems setting has been added to the web.config file. The setting also existed in previous versions, but you had to manually add it to the configuration file. In previous versions, the default value was true, causing items that did not have any publishable versions to be published along with all of their shared fields. With 7.2, the default value is false, so that empty items are not published. (317376, 317377, 316351, 364840)
- A new <getItemReferences> pipeline lets you extend or modify the logic for determining any related items that should be published together with an item being published. This pipeline is executed whenever a user has selected the new "Publish related items" option in the Publish wizard. The AddItemReferences processor in the <publishItem> pipeline no longer contains the logic to add item references but simply calls this pipeline. By default, the related items that are published include clones, aliases, related media items, and items that the current item refers to in the link database. (399479, 404795)
- When using workflows to publish items, you can now specify additional parameters for the PublishAction class for more flexibility. In addition to the "deep" parameter, the following additional parameters are now supported: (399483)
- related – Can be set to "1" to publish related items. If not specified, the workflow action does not publish related items.
- targets – Can be used to specify a comma-separated list of names of the target database(s). If not specified, the default is to publish to all publishing target databases.
- languages – Can be used to specify a comma-separated list of language codes. For example, "en,en-CA". If not specified, the default is to use the language of the item being published. This retains the existing functionality.
- itemlanguage – Can be set to "1" to publish in the language of the current item being published in addition to any languages specified in the languages parameter.
- alllanguages – Can be set to "1" to publish in all languages. If this parameter is specified, the languages and itemlanguage parameters are ignored.
- By default, Sitecore now creates a new thread for each publishing job instead of queuing publishing jobs in Sitecore's managed thread pool. This prevents the Publish wizard getting stuck in the "Initializing" step. The new Publishing.ExecuteInManagedThreadPool web.config setting lets you change the configuration back to use the managed thread pool if necessary. (399530, 369305)
-
Publishing performance improvements
- Support for executing publishing operations in parallel. This is typically used on a dedicated publishing instance. To enable this feature, rename the /App_Config/Include/Sitecore.Publishing.Parallel.config.disabled file to Sitecore.Publishing.Parallel.config. Enabling this feature increases the load on the CPU. Before you enable this file, make sure to read the comment in the file about the Publishing.MaxDegreeOfParallelism setting to understand the potential impact. (399401)
- When you publish multiple languages, the system no longer creates a separate publishing job for each language. Instead, the PublishContext now has a new Language property that contains the languages to publish. This improves the performance of the publish operations because the system now iterates the list of items to be published just once instead of once for each language. (399478)
- The new Publishing.DisableDatabaseCaches web.config setting lets you specify whether you want the system to populate database caches with data retrieved during publishing. When set to true, Sitecore publishes items as usual, but does not populate the database caches with the item data that is retrieved as part of the publishing operation. This can reduce the amount of memory used by the ASP.NET worker process, especially in solutions with a large number of items, versions, and languages. (401727)
- The new LinkDatabase.UpdateDuringPublishing web.config setting lets you configure the system so that it does not perform updates to the link database for item operations that occur in the context of a publishing operation. This can improve performance of publish operations, but should only be used in solutions where you do not using the LinkDatabase API on your content delivery instances. (399474)
- When an item is saved as part of a publishing operation, the system no longer adds the item to the publish queue. This avoids processing unnecessarily in the publish queue. (401580)
- The new Rules.SupportedDatabases web.config setting lets you configure the system to only evaluate and execute rules and conditions in specific databases. This is typically used to reduce the CPU load used by the publishing process by suppressing rules execution on content delivery instances where you don't need the rules item event handlers to be executed. (401683)
- The new Rules.RunDuringPublishing web.config setting lets you configure the rule item event handlers so that they do not run for item operations that occur during publishing. This can help reduce the CPU load used for publishing in cases where you don't need the rules item event handlers to be executed on the publishing instance. This setting only affects the instance that runs the publishing operation. To suppress rules execution on Content Delivery instances, use the Rules.SupportedDatabases setting. (401683)
- The DeviceItemsCache has been optimized so that when you save an item, the cache now checks the template ID of the saved item instead of checking the parent ID, which is sometimes a slightly more expensive operation. (401580)
- A few minor performance improvements related to publishing have been implemented. The following methods have been optimized: PublishHelper.GetUnknownChildIds() and ItemProvider.CreateItem().(399469, 401548)
-
Performance improvements
- The FilteredItemCache no longer clears the cache every time an item is saved. The system now checks the field values of saved items and only clears the cache if one of the fields that impact item filtering has been modified. This can give a small performance improvement to publishing operations as well as improve the performance of sites running in live mode. (312139)
- The RuleCache has been optimized. For example, if the modified item does not contain a "Rule" field, the caching code no longer unnecessarily resolves the parent item of the modified item. (401580)
-
Publish wizard improvements
- When you publish an item (with or without subitems), a new "Publish related items" check box allows you to publish related items. The related items to be published are determined by the new <getItemReferences> pipeline. (399479, 363600, 404143)
- The visibility of this option is controlled by the following item in the core database: /sitecore/system/Settings/Security/Policies/Publish/Can Publish Related Items. By default, access is granted to members of the Sitecore Client Publishing role.
- You can now control the publishing options (incremental/smart/republish) that users see in the Publish wizard. (399487, 402430)
- Incremental Publish: The visibility of this option is controlled by the following item in the core database: /sitecore/system/Settings/Security/Policies/Publish/Can Perform Incremental Publish. By default, access is granted to members of the Sitecore Client Publishing role.
- Smart Publish: The visibility of this option is controlled by setting the following item in the core database: /sitecore/system/Settings/Security/Policies/Publish/Can Perform Smart Publish. By default, access is granted to members of the Sitecore Client Publishing role.
- Republish: The visibility of this option is controlled by the following item in the core database: /sitecore/system/Settings/Security/Policies/Can Perform Republish. By default, access is granted to members of the new Sitecore Client Advanced Publishing role.
- Publishing targets are now sorted by display name, and they display the name of the target database. (399487)
- Languages are now sorted by display name. (399487)
- Languages that you do not have write permissions for are no longer displayed in the Publish wizard. (399487)
- When you publish an item (with or without subitems), a new "Publish related items" check box allows you to publish related items. The related items to be published are determined by the new <getItemReferences> pipeline. (399479, 363600, 404143)
-
New include files in the /App_Config/Include folder
- Sitecore.Publish.Parallel.config.disabled enables parallel publishing by replacing the standard ProcessQueue processor in the <publish> pipeline with a new ParallelProcessQueue processor. Before you enable this file, make sure to read the comment in the file about the Publishing.MaxDegreeOfParallelism setting to understand the potential impact. After enabling the file, you should monitor the CPU load on your publishing instance, as well as your database server to see if the value of the setting needs adjusting. (399401)
- Sitecore.Publishing.EventProvider.Async.config.disabled replaces the standard EventProvider implementation with an AsyncEventProvider. The AsyncEventProvider addresses the problem that when the system is busy, the processing of events in the event queue of one database can block the processing of events from all other databases. For example, this problem can occur during massive parallel publishing operations where updates to the processed items counter in the Publishing wizard can be significantly delayed. (399472)
- Sitecore.Publishing.DedicatedInstance.config.example disables features that normally do not run on a dedicated publishing instance. By default, the include file removes search index definitions, disables index updates, and disables scheduled tasks. You should review the file before enabling it to avoid disabling features that are in use on your publishing instance. See the comments in the file for more information. (399467)
- Sitecore.Publishing.Optimizations.config.example contains some experimental optimizations that can speed up publishing, such as disabling rule item handlers and incremental index updates during publishing, disabling cache size limits, and enabling indexing of cache keys. Before you enable this file, make sure you review each of the comments in the file and consider whether some of the optimizations should be commented out due to the specifics of your solution. (399467)
- Sitecore.Analytics.RobotDetection.config implements improved logic for robot detection. Do not modify or disable this file. This file is only present if you have DMS installed.
-
Item buckets
- A new "Bucketable Settings" group on the Configure tab of the Content Editor ribbon makes it easier to configure whether items can be stored as unstructured items in an item bucket. When you select an item, you can now change the value of the Bucketable field for the template standard values directly in the ribbon without having to navigate to the template standard values. In addition, Administrators can override the Bucketable field for individual items. (386879, 393880)
- You can now configure the system to execute certain item bucket operations using multiple threads. Depending on your environment, this might improve the performance when you create, sync, or revert an item bucket. The new BucketConfiguration.MaxDegreeOfParallelism setting in the Sitecore.Buckets.config file lets you specify the number of threads to use. (386872)
- You can now configure the system to use different folder path structures for different item bucket containers. You do this by defining one or more rules on the "Item Buckets Settings" item. (388718)
- The new BucketConfiguration.SearchUIServiceProvider setting lets you override/substitute the web service that the search UI calls to retrieve information and perform various operations. (388105)
-
Search tabs in the Sitecore clients
- The search field has been improved so that it is easier to type search filters. For example, you can now type "+" or "-" in front of a search filter to indicate the search logic (must vs. must not). In addition, autocomplete has been introduced for several of the standard search filters, and the sort filter can now parse [asc] and [desc] in its value. (400830)
- Autocomplete for the "template:" and "location:" filters now show the full item path rather than just the item name and GUID.
- The system now indicates if a search filter does not have a value or contains an invalid value for that type of search filter. (400830, 386547)
- The search field has been improved so that now you can edit the values of search filters that you have already entered in the search field. (400830, 379804)
- You can now paste multiple filters separated with semicolons into the search field. (400830)
- The list of your recent searches now indicates the search logic for filters (should, must, must not) using "+" and "-" in front of the search expression, and it also indicates the sort direction for sort filters. (400830)
- For consistency, the system now always uses a semicolon as a separator between search filters. For example, when you build a query for the Default Bucket Query field or for the Data Source field of a control. For backwards compatibility, queries that use an ampersand as a separator will still work correctly. (396902)
- When you search for text in an item, the system now also searches for the text in the _displayname field in the index (in addition to the _content and _name fields). (400420)
-
Content faceting
- Definition items for facets can now be organized into subfolders. (388010)
-
Sitecore.ContentSearch API
- The new <contentSearch.getGlobalLinqFilters> pipeline lets you apply global search filters for every query that is executed using the Linq layer (which includes queries performed using the search UI). (387579)
- You can now call GetQueryable<T> and specify an interface as the type. (386844)
- You can now define rules for the object factory for the IndexDocumentPropertyMapper in the configuration. The rules determine which object is constructed based on the type you pass to GetQueryable<T>. For more information, see the comment for the <objectFactory><rules> node in the Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file. (386844)
- In addition to configuring static rules for the IndexDocumentPropertyMapper object factory, you can pass in a new OverrideExecutionContext<T> to GetQueryable<T> to use a different configuration at runtime. Depending on your use case, you can use this to override the document mapper, to override the object factory, or to override the object factory ruleset. (386844)
- By default, the document mapper throws an exception if an error occurs during property mapping. This caused problems for some customers. The new ContentSearch.DocumentMapping.StopOnPropertyMappingError setting lets you control this. If you set this setting to false, the property mapper skips any properties where an error occurs and continues to map the remaining properties. (388584)
- The new ContentSearch.Crawling.StopOnCrawlError setting specifies whether the Sitecore crawlers stop crawling if an error occurs during the crawling process. The default behavior is to continue crawling if an error occurs. (388584)
- The new ContentSearch.Crawling.StopOnCrawlFieldError setting specifies whether the Sitecore document builder classes add document data to the index if an error occurs while processing one or more fields for the document. The default behavior is to add the document data. (388584)
- When an index is configured to use the synchronous index update strategy, the system no longer writes a "Job started: Index_Update_IndexName" and "Job ended: Index_Update_IndexName" message to the log file for each item that is indexed. This avoids overflowing the log file with unnecessary messages. (382052)
- When you run Re-Index Tree from the Developer tab and click "View all messages," the dialog now shows the paths of the folders being re-indexed as it processes them. (382835)
-
Sitecore.ContentSearch configuration
- The path to the <mediaIndexing> section was hardcoded. This prevented customers from using different configurations for different indexes. This has been fixed so that now you can specify a <mediaIndexing> element below the <field name="_content" …> element in the computed fields section. The <mediaIndexing> element can either specify the configuration inline as subnodes, or you use a ref attribute to specify a path and reuse the configuration from another mediaIndexing element. (402508, 401411)
-
Sitecore.ContentSearch Solr provider
- The Solr provider now supports HTTP query caching for requests that contain an ETag. HTTP request caching only works if you also enable HTTP caching and ETags on the Solr server. The new ContentSearch.Solr.EnableHttpCache setting can be used to disable this functionality in the Solr provider, for example, for debugging purposes. (388298)
-
Breaking Links dialog
- The default option in the Breaking Links dialog is now "Leave links" instead of "Remove links" to avoid users accidentally removing links permanently. (353110)
- To reduce the risk of deleting an item by mistake, the Breaking Links dialog now displays the name and path of the item that you are about to delete. In addition, the dialog now has an extra step that displays the number of links that will be updated or removed if you continue. (353110)
- The Breaking Links dialog now has a back button on the "Link to another item" page that allows you to return to the first page of the wizard. (353110)
-
General Link field
- A new LinkField.GetFriendlyUrl() method has been introduced. The method makes it easy to output a valid URL no matter what type of link the field contains. For internal links, the method returns a URL from LinkManager.GetItemUrl(). For media links, the method returns a URL from MediaManager.GetMediaUrl(). For external links, anchor links, e-mail links, and JavaScript links, the method returns the value of the LinkField.Url property. (400051)
-
SPEAK UI Framework
- The jQuery library used by SPEAK has been updated to v1.10.2.
- The Bootstrap library used by SPEAK has been updated to v2.3.2.
-
New components in the SPEAK Business Component Library:
- ArrowIndicator
- AreaChart
- BarChart
- ChartDataProvider
- ColumnChart
- DoughnutChart
- GenericDataProvider
- LineChart
- JourneyChart
- PieChart
- RadarChart
- Slider
- ValueLabel
-
Caching
- The new Caching.CacheKeyIndexingEnabled.ItemPathsCache web.config setting allows customers to configure the system to use extended indexed storage for cache keys for the ItemPathsCache. In certain scenarios, using indexed storage for cache keys can significantly reduce the time it takes to perform partial cache-clearing operations. Enabling this setting can also sometimes reduce the chance that you get SQL Server time-outs when parallel publishing is enabled. (399484)
- The new DisableCachePopulationSwitcher context switcher can be useful as an alternative to using a DatabaseCacheDisabler. Where the DatabaseCacheDisabler disables both reads and writes to database caches, the new switcher only disables writes, while allowing the system to take advantage of existing data already in the cache for reads. Overall, this should result in slightly better performance. (403151)
- When you use a DatabaseCacheDisabler or the new DisableCachePopulationSwitcher context, the system no longer populates the AccessResultCache with data. This can reduce the amount of memory used for cached data and improve performance, especially in solutions with a large number of items, versions, or languages. (402350)
-
Logging
- The configuration of the log4net appenders in the web.config file has been changed so that all the appenders that are defined by Sitecore now use UTF-8 encoding. This ensures that log messages in Japanese, for example, are written correctly to the log file. (397046, 401874)
- The "Long running operation:" log messages are no longer written to the log file when the log level is set to "WARN" because many customers found these messages confusing. To see these messages, you must now set the log level to "DEBUG" on the <log4net><root><priority> element in the web.config file. (356563)
-
/sitecore/admin/FillDB.html
- The FillDB.html page can now be enabled using the new EnableFillDB setting in the Sitecore.Buckets.config file instead of developers having to modify the aspx file itself. This lets developers create an include file in their dev environment that enables this page, while keeping the page disabled on content management and content delivery instances. (399147)
- The FillDB.html page has been completely reworked. Each step is now optional and lets you specify additional parameters for the step. In addition, the page provides additional steps that can be useful, such as the ability to clear site caches and to reindex all indexes or a specific index. (386884, 388566)
- When enabled, the FillDB.html page now handles POST requests. For example, this lets you write PowerShell scripts that execute this page. In addition, you can specify a "json" parameter to return results as a JSON response. (386884)
-
/sitecore/admin/LinqScratchPad.html
- The LinqScratchPad page did not always show the elapsed time. This has been fixed by moving the timer into the LinqScratchPad code itself. After this fix, your user code no longer needs to contain a RunTimer() method or a stopWatch field in the Program class. (387576)
- The LinqScratchPad can now load code from a gist on github by simply typing the URL to the gist page (http://gist.github.com/<userid>/<gistid>). (387238)
Important changes
-
Publishing
- By default, the Republish option in the Publish wizard is now only available for administrators and members of the new Sitecore Client Advanced Publishing role. This change was made to discourage users from republishing. Republishing is an expensive operation that overwrites every item in the selected languages even if the data has not changed. You should only republish if the databases appear to be inconsistent and only after you have tried to fix the problem by performing a Smart Publishing operation. (399487, 402430, 404340)
- The system now writes a separate log file with information about publishing operations to the log folder. (399482)
-
Sitecore.ContentSearch API
- A new ISearchResult interface has been introduced. All Sitecore POCO classes now implement this interface. In addition, the SearchResultItem and SitecoreUISearchResultItem classes have been reworked to implement this interface, and the non-Sitecore related API from SitecoreUISearchResultItem has been extracted into a UISearchResult class. (402129, 404299
-
Sitecore.ContentSearch configuration
- Some of the nodes in the default index configuration file have been renamed. This has been done both for consistency and as a preparation for future features. For example, the <contentSearch><configuration> node has been changed to <contentSearch><indexConfigurations> and a number of nodes in the Solr config file have been changed so that the first letter of the node name is lowercase. Due to these changes, custom include files that worked under CMS 7.1 and 7.0 need to be updated to reflect the new structure. For a detailed list of changes, please refer to the Configuration file changes in 7.2.
- The logic for merging the default index configuration into custom index configurations has been changed. To merge the default index configuration, you must now specify a ref attribute on the <configuration> node for your indexes. This merges the default index configuration for most sections (for example, computed fields and exclude fields), with the <fieldMap> as an exception. To also merge the default index configuration into the <fieldMap> section for an index, you must specify a ref attribute on the <fieldMap> node. (402617)
- The comment above the custom fields section in the Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file has been updated to clarify that custom fields only support simple transformations and that you should use computed fields for more complex transformations. (401965)
- Comments for several sections in the Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file have been updated for clarity and consistency. (396732)
- The index fields __smallcreateddate and __smallupdateddate are now defined as computed fields instead of custom fields to allow more control over how the values are indexed. (401965)
-
Global.asax
- To make it easier to maintain a custom Global.asax file, the Sitecore code in the FormsAuthentication_OnAuthenticate method has now been moved to the Sitecore.Web.Application base class. This means that the Global.asax file in a clean installation now only contains a single line with an Application tag that points to the base class.
- To ensure that Sitecore continues to work as expected in the future, we recommend that you always call the base method from any custom methods that you add to your Global.asax file.
Breaking changes
-
CMS API
- The public constructor of the Database class has been removed because manually instantiated Database objects are not fully functional and using them can lead to errors that are hard to troubleshoot. Instead, use the Factory to create Database objects. (305030)
- The IWorkflow interface has been extended with an IsApproved method. You have to implement this method if you are using a custom workflow provider implementation.
- The signature of the ApplyWinningVariation method in the Sitecore.Shell.Applications.WebEdit.Commands.Testing.StopTest class has been changed so that you must now specify a new Language argument along with the existing arguments. This only affects your solution if you have overridden this command.
- The AddItemReferences class no longer contains any methods because it now executes the new <getItemReferences> pipeline. If you have overridden this class, you now have to override the processors in the <getItemReferences> pipeline instead.
-
Item buckets API
- The signature of the GetFolderPath method in the IDynamicBucketFolderPath interface has been changed to take additional parameters: database, name, and templateID.
- The signatures of the GetTemplates and GetBuckets methods in the ItemBucketService class have been changed. These methods are used for autocompletion in the search fields. The methods now return List<AutoCompleteItem> instead of List<string>. In addition, the GetBuckets method now takes a string argument to limit the number of results returned.
- The signatures of the CreateAndReturnDateFolderDestination and GetDestinationFolderPath methods in the BucketOperationProcessor class have been changed. The itemToMove argument now takes an Item object instead of an ID. This change affects all the derived classes that are used in the various bucket pipelines, as well as any custom pipeline processor classes that call these methods directly.
- The Sitecore.Buckets.Module.IframeField class has been removed because it was not in use.
-
Sitecore.ContentSearch API
- The behavior of the EndsWith() operator in the Linq layer has been changed so that now it throws an exception if it is called for a field that is not stored in the index with termvector offsets. Previously the operator would write an error message to the log file and return 0 results in this situation. (397998)
- The SearchConfiguration method in the ContentSearchManager class now returns a ContentSearchConfiguration object instead of the now deprecated ProviderIndexSearchConfiguration type.
- The Crawler<T> abstract class has been extended with additional abstract methods that custom crawlers now need to implement.
- The SearchProvider abstract class has been extended with a new abstract method.
- A number of interfaces have been extended with new methods and properties. This includes the following interfaces: IIndexDocumentPropertyMapper, IProviderCrawler, IProviderSearchContext, IProviderUpdateContext, ISearchIndex, and ISearchIndexSummary.
- The ISearchIndexSummaryEx interface was introduced in 7.0 Update-3 to avoid breaking API changes. The interface has now been merged into the ISearchIndexSummary interface and the ISearchIndexSummaryEx has been removed. (397532)
- In 7.0 Update-3, the AbstractDocumentBuilder class was extended with two methods: AddComputedIndexField and AddProviderCustomFields. They were added as virtual methods to avoid breaking API changes in 7.0 Update-3 and did not have any implementation. For consistency, they have now been changed to abstract methods. (398039)
- The Result property in the GetFacetArgs class has been renamed to ResultArgs. A new Result property has been introduced that returns the facet queries as an IEnumerable<FacetQuery> object.
-
Sitecore.ContentSearch Linq API
- The Dump method in the IDumpable interface has been replaced with a WriteTo method.
Deprecated and removed classes, methods, properties, and files
-
Removed classes and controls
- A number of classes that had been deprecated in previous releases have now been removed, including but not limited to the Sitecore.Shell.Applications.WebEdit.WebEditState class. (354038)
- The following XAML controls were not in use and have been removed: New Schedule, New Schedule Command, and Scheduled Tasks. (314009)
- The ContentNavigator XAML control was not in use and has been removed. (350240)
- The Boost XAML control was not in use and has been removed. This does not impact the boost page. (309063)
-
Deprecated classes, methods, and properties
- The "Treelist with Search" field type has been deprecated in favor of the "Multilist with Search" field because the functionality and UI is almost identical to the "Multilist with Search" field. The definition item for the field type has been moved to the "Deprecated Field Types" folder in the content tree. (402428)
- The "Use Smart Tags" feature has been deprecated. The option has been removed from the Application Options dialog available in the Content Editor, and the associated properties and classes in the API have been marked as obsolete. (354274)
- The MediaUrlOptions.PredefinedServerName property was not in use and has been marked as obsolete. (396738)
- The ProviderIndexSearchConfiguration class has been deprecated in favor of a new ContentSearchConfiguration class.
-
Removed files
- The Design.config file has been removed from the root of the website. The file was not in use and referred to a non-existent web service. (393706)
- The PIE_GPL.txt file has been removed from the /sitecore/Copyrights folder because the associated library is not distributed with Sitecore. (395106)
-
A number of obsolete items have been removed
- The core database contained a /sitecore/shell/Applications/WebEdit/Chunks folder that was not in use (not to be confused with the WebEdit/Ribbon/Chunks folder which is still in use). The unused folder and subitems have been removed. (354038)
Issues resolved
-
Publishing
- The publishing wizard would sometimes appear to be stuck on the "Initializing" step. This could happen if Sitecore ran out of free threads in Sitecore's managed thread pool. This has been fixed by creating a new thread for each publishing job instead of queuing publishing jobs in Sitecore's managed thread pool. If you change the value of the new Publishing.ExecuteInManagedThreadPool setting to true, you might experience this issue again. (399530, 369305)
- Renamed items were not published by incremental and smart publishing operations. This has been fixed. (369074)
- The Publishing.PublishEmptyItems setting (which could manually be added to the configuration file in previous versions) did not always work correctly. Depending on the value of the setting, this could lead to empty items never being published or never being unpublished. This has been fixed so that the setting works as expected in all cases. (317376, 317377, 400757)
- Empty items were never unpublished. If an item had already been published and you then removed the item versions or made them unpublishable, the item was not unpublished. This has been fixed so that this behavior is now controlled by the Publishing.PublishEmptyItems setting. (317377)
- Incremental publishing operations could skip items if the operation was initiated just before the date specified in the Publishable From field of one or more item versions. This happened because of the way the system kept track of the last publishing date. This has been fixed. (312211)
- If you performed an incremental publishing operation and did not have read or write permissions to all the items in the publish queue, the item would not be published on subsequent incremental publishing operations performed by users with sufficient permissions. This has been fixed by adding skipped items back into the publish queue. (305331)
- Incremental publishing operations sometimes unnecessarily processed children of the items in the publish queue. This has been fixed. (365086, 367208)
- Incremental publishing operations sometimes unnecessarily published newly created items/versions twice. This has been fixed. (390353)
- The PublishAgent task in the web.config file did not always work as expected. If you set the mode to "full", the agent would perform "smart" publishing operations instead of "full" publishing operations if the Publishing.CompareRevisions setting was set to true. This has been fixed. (362718)
- If enableWorkflow was set to false on the "publisher" site and you clicked one of the Publish buttons in the ribbon, the system displayed a warning if the current item was not in a final workflow state. This has been fixed so that the warning is only displayed when workflows are enabled. (315856)
- When you used the Publishing Restrictions dialog to change the publishing restrictions for an item version, the system would sometimes change the item statistics of versions that you had not changed the publishing restrictions for. This has been fixed. (359941)
- The messages related to publishing in the Quick Action bar were not always consistent with the content editor warnings. This has been fixed. (375445, 399528)
-
Performance
- When an instance queried the event queue for new events to process, it would sometimes keep reading the same records over and over again. This happened if none of the retrieved events from the queue needed to be processed by the current instance. This could cause an unnecessary load on the database server, for example after a big publishing job had finished. This has been fixed by making sure each instance always saves the event queue's last processed time stamp to avoid retrieving the same events repeatedly. (401482)
-
Engagement Analytics
- The Session End page event definition item had the value "Session Begin" in the Name field. This did not affect the functionality of the system under normal circumstances. This has been fixed so that now the Name field of the item is "Session End". (355836)
- Items based on the Campaign Category template were displayed with a different icon than the Campaign Category template itself. This has been fixed. (358505)
- The Analytics.Robots.IgnoreAutoRobots setting in the Sitecore.Analytics.config file was not in use (this setting should not to be confused with the Analytics.Robots.IgnoreRobots setting which is in use). This unused setting has been removed from the config file. (359276)
-
Layouts and renderings
- You could not specify a search based data source when configuring personalization or a multivariate test for a control in the Layout Details dialog box or in the Page Editor. If you defined a search based data source in the Select the Associated Content dialog box, on the Search for Content pane, and clicked OK, the system displayed this error message: "Please select an item from the results." This has been fixed. (386886)
-
Content Editor
- If you cancelled the Breaking Link dialog while the system was updating links, the item that you were about to delete would (as expected) not be deleted. However, the system might already have permanently deleted some or all of the links to the item or changed these links to point to another item. To troubleshoot this situation, the system now writes a message to the log file if the user cancels the dialog while links are being updated. (315334)
- If you selected an item with a broken link in a General Link field, a NullReferenceException error appeared and you could not edit the item. This has been fixed so that now the General Link field displays the GUID and a message that the item does not exist or that you do not have read access to the item. (399239, 399240, 404408)
-
Page Editor
- The WebEditRibbon contained a hard-coded reference to "/webedit.css" instead of using the value from the WebEdit.ContentEditorStylesheet web.config setting. This has been fixed. (318385)
-
Search tabs in the Sitecore clients
- When you used the Search tab, which is available in many dialogs, most of the quick actions for search results did not work as expected when you tried to execute them. This has been fixed by no longer displaying quick actions in dialogs. (386876)
- If you performed a search and an error occurred on the server when it tried to execute the search or when it tried to retrieve the facets, it was not always obvious that an error had occurred. This has been fixed so that now an error message is displayed below the search result and/or in the facet pane if an error occurs. (387990)
- If you were using a sharded setup for your indexes, the More Search Options menu could not be expanded. This has been fixed. (384820)
- In the Build Query dialog, when you added a "sort:" filter and changed the sort direction for the filter, the change was not reflected in the search query. This has been fixed. (394185)
- When you added a "location:" filter and started typing an item name, the system suggested items that contained the typed characters anywhere in the item name. This has been fixed so that now the system only matches words in the item name that start with the characters you have typed. (401891)
- When you added a "custom:" filter, some fields were missing from the list of the suggested field name, for example, the _name field. This has been fixed. (401261)
- When you added certain search types of search filters, such as "language:" filters, the search expression would appear twice in the Search field after you performed the search. This has been fixed. (395769)
- The BucketConfiguration.ForceClientLanguageInSearch did not work as expected when set to true. This has been fixed so that now the system returns search results from all the country/region names for the specified language code. For example, if you have selected en-US (English - USA) as the context language, the search now also returns results for en-CA (English - Canada), en-IE (English - Ireland), and other language codes that start with "en". (387577)
- My Recent Searches displayed certain types of recent search expressions incorrectly. This happened for search expressions that contained a pipe character. For example, "custom:title|sitecore" would be displayed as "custom:title". This has been fixed. (381679, 395065)
- When you selected an item that contained a default bucket query, sometimes the Search field did not display a "Clear" button for removing the query. This has been fixed. (400752)
- When you searched for templates in the Insert from Template dialog, template folders were listed in the search results and could be selected. This has been fixed by excluding template folders from the search results. (384918)
- When you used the Search tab in the Contextual Tab or the Context Menu dialogs, no search results would appear. This has been fixed. (385276, 385696, 388439)
- When using the Solr provider, the system did not return any results if you added the sort:" filter to a search expression. This has been fixed. (386247)
- [Firefox] When you added a Start Date or End Date filter, the calendar for picking dates would sometimes not appear. This has been fixed. (394517)
-
Content faceting
- When using the Solr provider, the "In Workflow" facet did not work correctly. This has been fixed. (382195, 403313)
-
Sitecore.ContentSearch API
- The ContentSearch.ParallelIndexing.LimitCores (now renamed to ContentSearch.ParallelIndexing.MaxThreadLimit) did not always limit the number of threads correctly. This could cause indexing operations to use a larger number of threads in total when multiple concurrent indexing operations were running. This has been fixed. (403131)
- After you restored deleted or archived items, the restored items were not indexed. This has been fixed. (383896)
- If the ASP.NET process was restarted while the search indexes were being rebuilt using the onPublishEndAsync index update strategy, the strategy would not restart from where it was stopped. This could cause items to be missing from the index. This has been fixed. (398139)
- The IntervalAsynchronousStrategy class did not always remove all relevant data from the index when you deleted multiple items or versions. This could lead to a situation where the index would return results for deleted items and versions. This has been fixed. (386882)
- The computed field classes in the Sitecore.ContentSearch.ComputedFields namespace expected the indexable object to be an implementation of SitecoreIndexableItem. This could cause the indexing of other types of indexable objects to fail. This has been fixed by ensuring that these computed fields do not throw an error in this situation. (387614)
- The NGramAnalyzer class implemented a custom tokenStream() method instead of overriding the TokenStream() method of the base class. In addition, the class was incorrectly marked as abstract. Both issues have been fixed. (395728)
-
Sitecore.ContentSearch Linq layer
- If you had a generic method that passed a generic type to GetQueryable, an exception would occur when you called the method with a message similar to: "Unsupported member access. Expression type: Convert. Member name: ItemId." This has been fixed. (389210)
- If you tried to execute a Linq statement that tried to access members in the predicate of a Where() statement, an exception error would occur, for example, for the following statement: context.GetQueryable<Product>().Where(i => i._database == Sitecore.Context.Database.Name.ToLowerInvariant()).Select(a => a.GetItem()). This has been fixed by adding support for accessing class members in predicates. (384358)
-
Sitecore.ContentSearch configuration
- When you configured custom fields, you had to specify UNTOKENIZED to mark the field as being untokenized while other field definitions used the keyword UN_TOKENIZED. This has been fixed so custom fields also accept the UN_TOKENIZED keyword while still supporting UNTOKENIZED for backwards-compatibility. (390928)
- If you uncommented the IncludeField section for a search index and specified one or more fields, the specified fields were sometimes not added to the index. This has been fixed. (386719)
- The comment above the <CheckForThreshold> element in the Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file had an incorrect reference to a related setting. This has been fixed. The comment now refers to the correct name of the related setting. (393645)
-
SPEAK UI dialogs
- The Select Media dialog could encounter problems when running in IE11. This has been fixed.
- [IE9] The Select Media Dialog window closed if you hit the Enter key after typing search text in the search field. This has been fixed. (399914)
- Several dialogs threw a Javascript error (SCRIPT5009: 'Date' is undefined). This has been fixed.
- Newly uploaded images did not always appear in the Select Media dialog the first time it opened. This has been fixed.
- The Upload Media dialog would throw Javascript console errors if a user added a media file for uploading, removed it again before uploading it, and then uploaded other media files. This has been fixed.
-
SPEAK Business Component Library
- Accordion: Binding to the IsVisible property did not work. The component was always visible. This has been fixed.
- Dictionary: The Sitecore.Resources.Dictionary array returned null if you used the format Sitecore.Resources.Dictionary["key"] and the key was not found. The correct usage is to call Sitecore.Resources.Dictionary.translate("key").
- ListControl: Column headers and data were truncated when they were too long to fit in a cell, making it difficult for users to know the full value displayed. This has been fixed by adding a tooltip for both column data and headers.
- ListControl: The EmptyText property, which contains text that should be shown when a ListControl has no data to display, was not always shown. This has been fixed.
- ListControl: Text inside cells did not adhere to the applied alignment property. This has been fixed.
- ListControl: The sorting controls did not work in Firefox. This has been fixed. (402918)
- ListControl: The control did not start with data presorted based on the sorting configuration. This has been fixed.
- ListControl: The sorting controls have been improved to indicate when sorting is not in use for a given column. Selecting multiple controls now allows for sorting by multiple columns.
- ListControl: Columns previously all had equal widths. The ListControl now supports columns with different widths. A Width property has been added to the ColumnField definition template. Developers can now provide values as pixels (any integer) or a percentage (integer between 1 and 100 with suffix %).
- ListControl: The Formatter field used for formatting date columns now also works for formatting numeric columns using the following formats (adjusted for the context language regional settings):
- #Nx – generic numeric formatting, where x is the number of decimals to show
- #Px – percentage formatting, where x is the number of decimals to show
- MessageBar: When two MessageBar controls were on a single page, only one of the controls would show messages. This has been fixed.
- MessageBar: The MessageBar could sometimes appear with no messages. This has been fixed.
- MessageBar: The MessageBar could throw an exception when adding a trigger in Javascript. This has been fixed.
- ProgressIndicator: The z-index of the component was not always appropriate, which could cause the component to appear in front of or behind other components. This has been fixed.
- TextArea, TextBox: A WidthPolicy property that accepts the following two settings has been added:
- Default – the component uses the default width for input controls
- BlockLevel – the component uses the full width of its container
-
Sitecore Item Web API
- When you used the GetRenderingHtml action, the system ignored the sc_itemversion parameter and always rendered the latest version of the item. This has been fixed. (395227)
-
Media requests
- Some browsers had problems downloading and opening PDF files with the default Sitecore configuration. This has been fixed by changing the <forceDownload> element to true for the <mediaType name="PDF file" extensions="pdf"> element in the web.config file. (368967)
-
Update Package Installation Wizard
- When you installed an update package that contained commands for adding or changing items in several databases and one of these databases did not exist, the system might skip commands related to other databases. This has been fixed so that only commands related to the database that does not exist are skipped in this situation, while item operations for other databases are performed. (387807)
- When you installed an update package that contained dictionary entries, the dictionary cache was not cleared, and you had to manually delete the dictionary.dat to clear the cache. This has been fixed. (352844)
- When you installed an update package that contained template definition items that were located outside the /sitecore/templates node, the templates (and any items based on these templates) were not installed correctly. This has been fixed. (399673)
- When you installed an update package, the installation history log would sometimes contain errors with the following message: "The specified path, file name, or both are too long." This has been fixed. (399674, 402463)
-
Serialization
- When you reverted or updated items from serialization, the operation could go into an endless loop. For example, this could happen if you had serialized the SPEAK item structure where the serialized items included templates located outside the /sitecore/templates folder. This has been fixed. (399633)
-
Multibrowser fixes
- [IE] When you clicked the More button for an item in the workbox, nothing happened. This has been fixed. (404607)
- [IE11] When you hovered the cursor over the Content Editor ribbon or tabs, the content of the tabs would sometimes disappear and a grey background would appear instead. This has been fixed. (401013)
- [IE11] The confirmation prompts in the Sitecore clients sometimes displayed the text "Script Pompt:" before the actual text of the prompt. In addition, the OK and Cancel buttons were sometimes placed inconsistently in such prompts. This has been fixed. (401030, 404782)
- [Firefox] When you attached new media to an existing media item, the following error message sometimes appeared: "An error occured while uploading a file." This has been fixed. (404084)
- [Firefox] The Access Viewer and Security Editor applications did not refresh when you selected a different user account using the Select button or when you changed the columns that you wanted to display. This has been fixed. (403400, 395850)
- [Firefox] The Context.ClientPage.ClientResponse.SetLocation method did not work in Firefox. This has been fixed. (403400)
-
Localization
- Some typos have been fixed in various parts of the system. (395674, 309363, 309365, 314007, 314011, 314012, 314013, 347479, 340786)
-
Caching
- The Sitecore.Caching.Cache class was not thread safe. For example, this could lead to an IndexOutOfRangeException error when adding new entries to the cache. Such errors typically occurred when the system was under heavy load. This has been fixed. (400897, 401501, 401681)
- The Sitecore.Caching.ItemCache class was not thread safe when the Caching.CacheKeyIndexingEnabled.ItemCache setting was set to true. This could cause exception errors to appear in the log file, typically when the system was under heavy load. This has been fixed. (401426)
- The Caching.CacheKeyIndexingEnabled.ItemCache setting used the value of the Caching.CacheKeyIndexingEnabled.AccessResultCache setting. This has been fixed so the ItemCache setting now reads the correct value from the web.config file. (401430)
-
Miscellaneous
- The Enable Datasource Query field on the /sitecore/templates/System/Layout/Sections/Rendering Options template was versioned, which caused problems for translation. This has been fixed so that now the field is shared. (396800, 403896)
- The EventDisabler did not disable the events that are raised before an action is executed, for example, item:saving and item:deleting. This has been fixed. (339741)
- The UrlString class dropped query string parameters without a value, such as "http://localhost/?wsdl". This has been fixed so that these query string parameters are now parsed correctly. (398081)
- The ItemLink.GetSourceItem() method threw a NullException if the database for the link did not exist. For example, this could happen if you processed references from the link database on a content delivery instance and some links referred to a database that was not available to this instance. This has been fixed. (387807)
- You could create items under /sitecore/System/Settings/Buckets/Search Types without specifying a value for the Control Type or the Client Side Hook fields. This has been fixed by adding a validation rule to make these fields required. The standard values for the template now also specify a default value of "Text" for the Control Type Field and "normal" for the Client Side Hook field. (401427)
- Most of the classes that define well-known item IDs and field IDs contained static fields that were not marked as read-only. This has been fixed in all the relevant classes, for example, the Sitecore.DeviceFieldIDs, Sitecore.FieldIDs, Sitecore.ItemIDs, Sitecore.TemplateIDs classes. (398740, 398332)
- The description of the Sitecore.Data.Fields.LinkField.Url property in the API was very brief and could cause developers to use the property incorrectly. This has been fixed by updating the description to point out that the property should not be used for rendering links on the website. (362530)
- In the core database, the Application template and the Task Page template had an Icon field where the field type was "text". This has been fixed so that now the field type is "Icon". (355768, 399797)
- The analyticsDefinitions attributes that can be specified on <site> elements in the web.config file were not described in the comment above the <sites> section. This has been fixed. (378756)
1.3. Release History for Sitecore CMS 7.1
Some of the issues described on this page contain internal reference numbers. You can use these reference numbers when communicating with Sitecore about a particular issue or feature.
As part of our commitment to continually improving our software and listening to our customer’s feedback, Sitecore regularly releases new versions of our CMS product. Each release undergoes careful quality assurance procedures to minimize the number of issues.
September 17, 2014
Released Sitecore CMS and DMS 7.1 rev. 140905 (7.1 Update-3).
Note: This is a product update. Sitecore recommends upgrading to this release when the fixes included meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update:
- Security vulnerability fixes to make Sitecore more secure
- Improved log messages
- Content Editor fixes
Improvements
-
Sitecore.ContentSearch API
- If the root item for a search index does not exist, the system now writes a more descriptive error message to the log file. This error message includes the name of the index, the missing root path, and the database name. (366967)
-
Content Editor
- To make troubleshooting easier, the log message that is written to the log file when you move an item using the Content Editor now includes the path of the new parent. Previously, the new parent was only identified by its GUID. (362102, 413082)
-
Localization
- You can now disable automatic translation of custom template field names. This is useful if the name of a template field exists in the Sitecore dictionary but you do not want to use this translation when the field name is displayed in the Content Editor. You disable translation by selecting the new Ignore Dictionary Translation checkbox on the template field item. (390695)
Resolved issues
-
Potential security vulnerabilities
- [Backported from 7.2 Update-2] A potential security vulnerability related to the sitecore_icon.ashx handler has been fixed. (409770, 407921, 400290)
- A potential URL redirection vulnerability on the Kick.html page has been fixed. The page no longer allows redirects to external, possibly malicious, websites. (352317)
- When you opened the Rich Text Editor, the URL for the editor iframe contained the user name in the query string. Some customers considered this a security vulnerability because the user name could potentially be intercepted. This has been fixed so that the user name is no longer passed as a query string parameter. (375092)
-
Scaling and multi-instance setups
- [Backported from 7.2 Update-2] In a multi-instance setup, each item save operation led to the following error message in the log files of remote instances: "ERROR Exception while handling event Sitecore.Data.Eventing.Remote.SavedItemRemoteEvent." This happened because the remote event args were not extracted correctly. This has been fixed. (404817)
-
Sitecore Desktop
- When you used the quick search function in the task bar and you clicked a search result, the system opened the first version of the selected item. This has been fixed so that it now opens the latest version that contains the string that you searched for. (318320)
-
Content Editor
- Administrators could not move items that were locked by another user. This has been fixed so that administrators can always move items. (394488)
- The ImageAltFieldValidator class sometimes incorrectly indicated that an Image field was missing an ALT text. This happened because the validator sometimes used the client language instead of the content language when looking up ALT texts for media items. This has been fixed. (322784)
- [Backported from 7.2 Update-2] When you clicked the Browse button above an Image field, the Select Media dialog displayed "No items found" and the following message appeared in the log file: "[Item Web API] Invalid parameter(s): facetsRootItemId, search, root, searchConfig, sc_content, language, format, pageIndex, pageSize." This has been fixed. (408126, 413229)
- [Backported from 7.2 Initial Release] If you selected an item with a broken link in a General Link field, a NullReferenceException error appeared and you could not edit the item. This has been fixed so that now the General Link field displays the GUID and a message that the item does not exist or that you do not have read access to the item. (399239, 399240, 404408)
- When you performed various operations with Image fields, such as selecting an image or editing image properties, the following error message sometimes appeared in the log file: "ERROR Attempted to load invalid xml." This issue was caused by the ImageSizeValidator class that validates Image fields. This has been fixed. (368362, 379028)
- When you changed the owner of an item using the Change Ownership dialog, the change did not take effect. This has been fixed. (360234)
- If you clicked the Publishing Viewer button in the ribbon of an item that did not have any versions in the current content language, the dialog failed to open and the following message appeared: "Index was outside the bounds of the array." This has been fixed. (339640, 349938)
- In the Publishing Restrictions dialog, when you selected the Publishable checkbox, the drop-down lists where you select the publishing dates remained disabled until you reopened the dialog. This has been fixed. (358431)
- When you clicked the Copy To button to duplicate an item, the audit message in the log file did not specify where the item was copied to. This has been fixed. (364209)
- If you enabled the translate mode in the Content Editor and selected the same version number in each of the comparison drop-down lists, the panes displayed a comparison of the latest versions instead of the selected versions. This has been fixed. (398060)
- If you cleared the Search Panel option that is available in the Application Options dialog, the Content Editor failed with a NullReferenceException error and could no longer be used. This has been fixed. (402408)
- In the Breaking Links dialog, if you selected the Edit Links option and tried to remove or change any of the links, the following error message appeared: "Empty strings are not allowed." This has been fixed. (401999)
- The "Presentation Overridden" validator in the Quick Action Bar sometimes incorrectly indicated that presentation was overridden for some items. This has been fixed. (354830)
- Non-administrator users could not accept clone changes if the RequireLockBeforeEditing setting was set to false. This has been fixed. (382433, 388360)
- When you selected a protected item, the Cut and Copy clipboard commands were enabled. This has been fixed so that now these commands are disabled for protected items. These commands are only available in Internet Explorer. (378946)
-
Page Editor
- The Debug client sometimes displayed percentage values higher than 100% in the Most Time Taken and the Time columns. This has been fixed. (352294)
- The Debug client displayed "NaN%" next to "Resolve variant of item". This has been fixed. (352294)
-
Rich Text Editor
- When you used the Media Manager to insert media from Sitecore's Media Library into a rich text field, the operation sometimes failed with an InvalidOperationException. This has been fixed. (340850)
-
Workbox
- When you executed a workflow action on one or more items in the Workbox, the Workbox always switched back to page 1. This has been fixed so that now the Workbox remains on the same page when you execute workflow actions. (388043)
-
Publishing
- When you published an item, the publishing operation always removed any children from the target database that had been deleted in the master database, even if you had not selected the Publish Subitems option. This has been fixed. (343477)
- [Backported from 7.2 Update-2] The system did not publish items that had been created by a rule action until the caches were cleared. This prevented the Email Campaign Manager module from handling triggered messages correctly because the messages depended on rules to create and publish campaign items. This has been fixed. (407544)
-
Multibrowser fixes
- [Internet Explorer] When you used Internet Explorer 8 and navigated away from an item that contained unsaved changes, the "Do you want to save the changes to the item?" dialog did not display the actual message, only the Yes/No/Cancel buttons. This has been fixed. (412964, 406825, 406080)
- [Chrome] It was not possible to create shortcuts on the Sitecore desktop by dragging items from the Sitecore start menu onto the desktop. This has been fixed. (392575)
- [Firefox] When you inserted a new page using the Page Editor, the Page Editor did not automatically open the newly created page. This has been fixed. (402697, 414988)
- [Firefox] When you pasted the same text multiple times in the Rich Text Editor, the editor inserted a <br/> tag instead of the text every second time. This has been fixed. (406953)
- [Chrome][Firefox][ Safari] When you used the search field above the content tree and added additional criteria (by clicking the arrow to the right of the search field), the selected field appeared in the textbox instead of being used as a label for the criteria. And if you then searched, an error occurred. This has been fixed so that the label is updated when you select a field. (389255, 403166)
-
Sitecore.ContentSearch API
- The Lucene provider did not correctly apply the boosting of index fields for boost factors specified on individual items. This has been fixed. (409031, 410494)
- The SynonymAnalyzer in the Lucene provider did not work. The analyzer never matched any of the provided synonyms. This has been fixed. (402192, 408885)
-
Layouts and renderings
- [Backported from 7.2 Update-2] The Select the Associated Content dialog did not handle multiple data sources correctly. It only used the first data source and ignored any additional data sources. This has been fixed. (389483)
-
Using the Sitecore clients with out-of-process session state modes
- A number of classes that are used by the Field Editor application were not marked [Serializable]. This caused an error to appear if the solution was configured to use an out-of-process session-state mode and you saved an item that had validation errors. This has been fixed. (398727)
-
Localization
- When you configured a dictionary domain to use another domain as a fallback, the fallback feature did not always return the correct result. This could happen if several domains had the same name. This has been fixed by adding the item ID to the FullyQualifiedName property of the DictionaryDomain class. (391409)
- When using the Japanese client language, some of the labels in the UI wrapped to multiple lines. This has been fixed in the Create New User wizard, and the Take Screenshot dialog. (333375, 402484, 343560)
- When using the Japanese client language, some of the interface controls in the Desktop Background dialog overlapped. This has been fixed. (402410)
- When using the Japanese client language, the Workbox displayed two scrollbars in the Workflows group of the ribbon, and the names of the groups were partially obscured. This has been fixed. (367835, 402486)
- In the Rich Text Editor, the Image Manager of the Image Map Editor displayed the item name of media items instead of their display name. This has been fixed. (342561)
- A number of system templates did not have any value in the Title field. This made it difficult to localize the product correctly. This has been fixed. (325073)
- A number of phrases could not be translated in certain areas of the product. This has been fixed. (341916, 352467, 364321, 367338, 370709, 385167, 407435, 407436)
- When using the Japanese client language, a number of pages and applications did not use the Meiryo font. This has been fixed. (371570, 371608, 400466)
-
Miscellaneous
- When you requested a URL that should match a wildcard item, an error page was displayed with the following message: "Requested document not found." This happened if you used the display name of any of the items in the URL instead of their item names. This has been fixed so that wildcard items can be resolved even when the URL contains display names. (330783, 345954, 406830)
- The TemplateEngine could fail to initialize templates correctly if an exception error occurred during template loading. As a consequence, no template fields appeared on any items until the ASP.NET worker process was restarted. This has been fixed. If an exception occurs during template loading, it no longer prevents all the template fields from being loaded. (400378)
- SQL Server transaction deadlocks related to the link database could occur when multiple threads were creating and moving items concurrently, for example, when the threads created items that were stored in item buckets. This has been fixed by changing the GetReferrers(Item, ID) method in the SqlLinkDatabase class so that it uses WITH NOLOCK when reading from the Links table. (401393)
- Custom error pages were not displayed if the Sitecore databases were not reachable. Instead the standard ASP.NET or IIS error pages were displayed. This has been fixed. (341858, 377479)
- If the license was a Sitecore Express license, the system failed to start and instead displayed an error message saying that the license was missing. This has been fixed. (408989)
- The LinkManager.GetItemUrl() method ignored the value of UrlOptions.LowercaseUrls passed as a parameter. This has been fixed. (403118)
- Some typos have been fixed in various parts of the system. (368997, 404794, 409038)
March 27, 2014
Released Sitecore CMS and DMS 7.1 rev. 140324 (7.1 Update-2)
Note : This is a product Update. Sitecore recommends upgrading to this release when the fixes included in this release meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update:
- Security vulnerability fixes to make Sitecore more secure.
- Support for running the Sitecore user interfaces in Internet Explorer 11.
- The new Media.MediaLinkServerUrl web.config setting lets you specify the server URL to use for media links
System requirements
- Microsoft Internet Explorer 11 is supported by CMS 7.1 Update-2.
Important changes
-
Sitecore Item Web API
- If the query string contains unknown query string parameters, the API now returns an error message. This makes it easier for developers to identify misspelled parameters (for example, sc_databbbase) or parameters that are valid for normal requests to Sitecore, but which are not supported when you make a request to the Item Web API (for example, sc_lang). (401124)
-
Sitecore.ContentSearch
API
- The algorithm that used to populate the computed field "calculateddimension" has been adjusted so that when a media item containing an image is indexed, the algorithm now considers the width and height of the image independently (rather than the total number of pixels) when the image is assigned a label of "small," "medium," "large," or "huge." (395113)
Improvements
-
Media API
- The new Media.MediaLinkServerUrl web.config setting lets you specify the server URL to use for media links when the Media.AlwaysIncludeServerUrl is set to true. This is typically used when all media is served from one or more dedicated instances or when your solution is configured to store Sitecore media on a content delivery network. (367108)
-
Dialog box improvements
- Most of the dialogs in Sitecore that open as an overlay in the browser window now have a maximize button. (403538)
-
Multilist
with Search and
Treelist
with Search field types
- [Backported from 7.2 Update-1] The Treelist with Search and the Multilist with Search fields were not consistent, even though they offered very similar functionality. For example, the Treelist with Search field did not have the "Refresh" and "Go to item" buttons. This has been changed so that the fields are now identical, the only difference being that the Treelist with Search field still allows the user to change the start location of the search. (398476, 398417)
- [Backported from 7.2 Update-1] You can now configure Multilist with Search fields so that they allow the user to change the start location of the search. To enable this functionality, add an EnableSetNewStartLocation=true parameter in the source of the field. (398476)
Issues resolved
-
Potential security vulnerabilities
- Sitecore Corp. would like to give credit to Richard Turnbull at NCC Group for the discovery of the following vulnerability and for his cooperation :Authenticated users could potentially misuse the package upload wizard to upload zip files to the system, even if they did not have access to the Installation Wizard. This has been fixed. (403551, 403900)
- The xmlcontrol did not perform sufficient validation of the control name to render. This could be used to make the xmlcontrol load iframes or images. This has been fixed. (403892, 403900)
-
Multibrowser
fixes that have been
backported
from the 7.2 initial release:
- [IE11] When you hovered the cursor over the Content Editor ribbon or tabs, the content of the tabs would sometimes disappear and a grey background would appear instead. This has been fixed. (401013, 403569)
- [IE11] The confirmation prompts in the Sitecore clients sometimes displayed the text "Script Prompt:" before the actual text of the prompt. In addition, the OK and Cancel buttons were sometimes placed inconsistently in these prompts. This has been fixed. (401030)
- [Firefox] The Access Viewer and Security Editor applications did not refresh when you selected a different user account using the Select button or when you changed the columns that you wanted to display. This has been fixed. (403400, 395850, 402981)
- [Firefox] The Context.ClientPage.ClientResponse.SetLocation method did not work in Firefox. This has been fixed. (403400, 402981)
-
Multibrowser
fixes
- [IE11] When you performed certain operations in the Content Editor, the content of the tabs would sometimes disappear instead of showing the selected item. For example, this could happen when you double-clicked an item in the content tree, when you changed the content language, or when you opened a new search tab. This has been fixed. (402827, 402889, 402911, 402914)
- [IE11] A number of cosmetic and minor issues have been fixed. (402915, 403648)
- [Chrome] The height of the text area in the Edit HTML dialog was wrong. It only displayed two rows of text instead of using all the available space in the dialog. This has been fixed. (400696, 405819)
- [Chrome] In the Content Editor, the panels on the right of the Multilist with Search and the Treelist with Search fields were too tall and extended beyond the field border. This has been fixed. (406074)
-
Engagement Analytics
- When a visitor triggered a goal assigned to a media item, the system did not add the value for the goal to the visit. This has been fixed. (377163)
- The system tracked pages and page events for requests and actions that you performed in the Sitecore Debug client, even though this activity does not represent actual website activity from visitors. This has been fixed. (363566)
-
Page Editor
- If you clicked a link in a Rich Text field while holding the CTRL key, and you chose the "Stay on page" option, you could no longer edit the contents of the Rich Text field. This has been fixed. (371611)
- If you clicked a link in a Rich Text field while holding the CTRL key, it only worked correctly the first time. This has been fixed. (371611)
- In 7.1 Update-1, the Page Editor displayed the default text "[No text in field]" using the page language instead of the client language. This could cause the text to appear in the wrong language or not to appear at all. This has been fixed. (406261)
- If you clicked the Preview button in the Page Editor ribbon and then clicked the Back button in your browser, the Edit button was incorrectly highlighted in the ribbon. This has been fixed so that now the Preview button stays highlighted. (392564, 387519)
- When you used the Language drop-down list in the Page Editor, the system would sometimes change to a different language than the one you had selected. This could happen if you re-selected the active content language in the list. This has been fixed. (404542)
-
Media API
- When media URLs were rendered, the generated URLs did not contain a language parameter. If any of the images were versioned, an incorrect language version could be displayed if the browser had already cached the image in a different content language. This has been fixed by always appending a language parameter, both when expanding media URLs in Rich Text fields and when rendering other media links such as links to media items in General Link fields. (389825, 367585, 393838)
- When rendering media URLs, the system did not use the configuration in the encodeNameReplacements section to replace special characters in the URLs. This has been fixed so that media URLs also use the encodeNameReplacements configuration. (323105, 314977)
-
ASP.NET
Request validation
- Sitecore suppressed request validation exceptions that were raised by the ASP.NET framework for requests to the website. This has been fixed. (366894)
-
Sitecore.ContentSearch
Solr
provider
- When using the Solr provider, the content of indexed media files did not get appended to the _content field in the index. This has been fixed. (403406)
-
Serialization
- When you clicked the Serialize All Users button in the User Manager, an InvalidOperationException error or a DirectoryNotFound error would appear, and the user accounts were not serialized. This has been fixed. (403366)
-
Miscellaneous
- If you performed certain actions in the Desktop or the Content Editor after your session had expired, the system would sometimes show the login page embedded in the UI, for example, partially overlaying the content tree or in an iframe above the quick search function in the task bar. This has been fixed so that now you are always redirected to the login page in these situations. (402986, 406454, 406453, 405504)
- The number of search results that were returned by the search function above the content tree, by the quick search function in the task bar, and by the classic Search application were all hardcoded. This has been fixed by introducing three new settings in the web.config that let you configure the number of search results to return. The settings are named Search.ContentTreeSearch.MaxResults, Search.InstantSearch.MaxResults, and Search.ClassicSearch.MaxResults. (358998)
- When using the Danish client language, nothing happened if you clicked the Icon button on the Configure tab in the Content Editor ribbon. This has been fixed. (406149)
- Each time the SiteContextFactory.GetSiteContext(name) was called, it would add a new cookie to the HTTP response. If the method was called many times during a request, in some cases, this would return a response that was so large that IE would not display the page. In other cases, it would cause an InvalidOperationException error to appear with the following message: "Operation is not valid due to the current state of the object." This has been fixed by modifying the WebUtil.SetCookieValue method so that it now checks if the cookie to be set is already in the response object and if so, removes the old cookie before adding the new one. (377523)
- If you tried to collapse a section in a Field Editor window, such as the Rendering Parameters dialog, an error would occur if you had disabled prefetching of collapsed sections (either in the Application Options for the current user or globally using the ContentEditor.RenderCollapsedSections web.config setting). This has been fixed. (352419)
- The SheerResponse.ShowModalDialog() method no longer performed a postback to the server. This has been fixed, so that the method again performs a postback. (402219)
- When using the Web Forms for Marketers module, a JavaScript error would sometimes occur in the Content Editor.js file. This has been fixed. (402588)
January 31, 2014
Released Sitecore CMS and DMS 7.1 rev. 140130 (7.1 Update-1).
Note: This is a product Update. Sitecore recommends upgrading to this release when the fixes included in this release meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update:- Includes all the fixes from 7.0 Update-3 and 7.0 Update-4.
- A number of issues in the SPEAK UI dialogs and the underlying SPEAK UI framework and business component library have been fixed.
- A number of issues in the Sitecore Item Web API have been fixed.
- A potential security vulnerability issue has been fixed.
Improvements
- This release incorporates all changes made for 7.0 Update-3 and 7.0 Update-4. For additional information about these changes, please refer to the release notes:
-
Content Editor
- The search function located above the content tree now updates the search results list if you delete an item from the search results. When you delete an item, the system now selects the next item from the search results in the Content Editor. Previously, the parent item would be selected after you deleted an item, but this could be difficult for content editors to see because the parent item would rarely be visible in the search results pane. (399414, 400778)
-
SPEAK UI Framework
- In the Page-Script-File template, the UseAMD checkbox has been added. By default this is not selected. If you select UseAMD, Sitecore uses an asynchronous module definition when it loads the script. If you do not select it, Sitecore generates a simple <script> tag on the page.
- SPEAK now supports Classic App Pool mode. Please note that Classic App Pool mode is deprecated.
-
Miscellaneous
- A number of items related to configuring rules have been added to the core database. Also, existing items in the core database related to rules have been updated to make them consistent with the same items in the master database.
- The list of license files for third-party components in the /Website/sitecore/Copyrights folder has been revised, updating a number of files for consistency and accuracy.
Breaking changes
-
SPEAK UI Framework
- In CMS 7.1, SPEAK would only recognize the Page Settings item found under a page definition item if it was based on the Speak-PageSettings template. With this update, Page Settings items can now be based on any template, but the item name must be "PageSettings". This enables the use of any template for this type of item. The Speak-PageSettings template was renamed to "PageSettings", so that an item created with this template has the correct name by default. [Updated February 07, 2014].
Important changes
-
Executive Insight Dashboard
- In the 7.1 Initial Release, the logic for the Site filter drop-down list in the Executive Dashboard was changed so that it no longer displayed the name of sites for which the enableAnalytics attribute was set to false. This turned out to have unintended side-effects, and the fix was reverted. Instead, a new <ignoreSites> section has been added to the Dashboard config file. This section allows you to specify the sites that you want to exclude from the Site filter drop-down list. (399223, 399315)
Issues resolved
-
Potential security vulnerabilities
-
Sitecore Corp. would like to give credit to Endava for the discovery of the following vulnerability and for their cooperation:
A potential cross-site scripting vulnerability has been fixed in the TreeListEx control. (401208)
-
Sitecore Corp. would like to give credit to Endava for the discovery of the following vulnerability and for their cooperation:
-
Sitecore Desktop
- When the Executive Insight Dashboard was open, the Sitecore Start menu did not work and there could be problems switching between open applications on the Sitecore desktop. This has been fixed. (399551)
-
Content Editor
- In the 7.1 Initial Release, the Sitecore client language would change whenever you changed the content language in the Content Editor. This happened because of an issue in the Item Web API ResolveLanguage processor. This has been fixed. (400275, 400799)
-
Media Library
- When you clicked the Attach button on a media item and then clicked Browse, nothing happened. This has been fixed. (395494, 398762)
-
Sitecore.ContentSearch API
- When multiple content delivery instances were configured to use the RemoteRebuildStrategy and you performed a full index rebuild on the content management instance, an infinite loop of full index rebuilding operations would be started on the content delivery servers. This has been fixed. (393999)
-
Analytics reports
- [IE][Chrome] When you clicked the Design button in the Engagement Analytics application, the report designer did not open. This has been fixed. (400543)
-
SPEAK UI dialogs
- When you were logged in as a user account with a different domain than "sitecore", and you clicked the Browse button above an image field, the Select Media dialog displayed a "No items found." message and the log file would contain an UnauthorizedAccessException error with the following message: "[Item Web API] Access to site is not granted." This also happened for link fields. This has been fixed so the dialogs now work correctly for users that are not in the "sitecore" domain. (399154, 399315)
- In CMS 7.1, the Insert Link dialog behaved differently than the Insert Link dialog in previous releases. Specifically, in previous releases, the dialog generated a class property and left the contents unencoded. In CMS 7.1, the dialog generated a style property and urlencoded the contents. This has been fixed so that now the dialog generates a class property and leaves the contents unencoded. (399519)
- The Insert Link dialog did not always insert a link when the user specified a Target. This has been fixed.
- Insert Link and Insert Anchor dialogs: The data-sc-id parameter was not configured correctly for various buttons in the dialogs. This has been fixed.
- In the Select Media dialog, date-related filter names have been improved. (394708)
-
SPEAK UI Framework
- An unnecessary ModallessDialogs.js file has been removed. (393215)
-
SPEAK Business Component Library
- ActionControl: Actions listed as favorites in the page definition did not show a favorite icon (star) on the page. This has been fixed.
- ActionControl: Changing the value of the isVisible property programmatically did not always work properly. This has been fixed.
- ChildRenderer: In some cases, the ChildRenderer component generated invalid XML. This has been fixed. (401087)
- ColumnPanel: The ContentAlign property did not always work properly. This has been fixed.
- ComboBox: The ComboBox control did not always display a proper name when it was bound to a data source. This has been fixed. (398247)
- DatePicker: If a default date was set in the page layout, it would override the date set by the user when retrieved programmatically. This has been fixed.
- DialogWindow: The EnableKeyboard property did not always work properly. This has been fixed.
- DialogWindow: The name of the IsModal property was misleading and did not reflect the functionality. The property has been removed and a new Backdrop property has been introduced instead.
- DialogWindow: The DialogWindow failed to open properly in some cases. This has been fixed.
- Expander: When set to False, the IsOpen property did not always work properly. This has been fixed.
- FilterControl: The filter name did not always match the facet item name. This has been fixed. (398246)
- ListControl: The ListControl now reads the media path from the web.config file.
- ListControl: The isVisible property did not always work properly when set using JavaScript. This has been fixed.
- QueryDataSource: The Language property did not always influence language appropriately. This has been fixed.
- Rules: The condition "where attribute compares to…" raised an exception if the comparator was something other than contains. This has been fixed.
- SearchPanel: The data-sc-id parameter and some additional rendering parameters were missing from the HTML. This has been fixed.
- Section: The Section placeholder did not always work properly. This has been fixed.
- Separator: The Separator had an inappropriate 1-pixel blob to the left of the horizontal line. This has been fixed.
- SubAppRenderer: The w3wp process could receive an exception when opening a dialog containing a SubAppRenderer. This has been fixed.
- TextArea: The IsEnabled property did not always work properly. This has been fixed.
- TreeView: The ShowSitecoreIcons property did not always work properly. This has been fixed.
- Uploader: The upload() function did not return a list of uploaded file IDs. This has been fixed.
-
Sitecore Item Web API
- If you executed a delete action with an empty sc_itemid parameter or if the parameter specified an invalid GUID or a GUID of a non-existent item, the system deleted the /sitecore/content node. This has been fixed so that now the system returns a response with an empty list of item IDs in this situation, indicating that no items were deleted. (395029)
- The Item Web API ResolveLanguage processor processed all requests and changed the Context.Language to the language specified in the query string. This has been fixed so that now the processor only processes requests when the Sitecore.ItemWebAPI.Context is not null. (400799)
- The authenticate action returned different results depending on the site prefix in the URL. This has been fixed so that now the authenticate action ignores any site or virtual folder prefix specified in the URL when determining if credentials are valid. (396120, 395221)
- When you sent a standalone authentication request using the authenticate action, the API returned a status code 200 for invalid credentials if the system was configured to allow access to anonymous users. This has been fixed so that now the system returns a 401 Access not granted error message in this situation. (395221)
- The getpublickey action would sometimes return a 500 Internal Server Error message. This happened because the private encryption key was stored in the machine key storage, which, if the key was created by a service running under a different user account, the IIS user account did not have permissions to access. This has been fixed by storing the private encryption key in the user key storage instead of the machine key storage. (398178)
- The Item Web API would sometimes return data from the web database even if the request specified a sc_database query string with a different database name. This happened if the user was not a member of the Sitecore Client Users role and therefore did not have permissions to switch databases. This has been fixed so that now the API returns an error message in this situation. (393117)
- When you tried to retrieve a versioned media item by ID, the Item Web API would return a 500 error code with the following message: "Object reference not set to an instance of an object." This has been fixed. (400841)
- If an upload request using the Item Web API was cancelled or interrupted before all the data was sent, an empty media item without a media file would still be created in the Media Library. This has been fixed so that now a media item is no longer created in this situation. (401301)
- If a create item request was sent using an unsupported Content-Type header, an empty item would still be created. This has been fixed so that now the system returns an error if you send a create item request and the Content-Type header is not "application/x-www-form-urlencoded". (402983)
-
Serialization
- In the User Manager application, when you clicked the Revert All Users button, the confirmation prompt would sometimes display negative values, for example: "This operation will add -1 user accounts [...]." This has been fixed. (403036)
-
Setup.exe installation program
- The setup.exe program did not install the Sitecore.MvcAnalytics.config file to the /App_Config/Include folder. This has been fixed. (400339, 395567)
November 27, 2013
Released Sitecore CMS and DMS 7.1 rev. 130926 (7.1 Initial Release).
Note: This is a Feature Release. Sitecore recommends upgrading to this release when the fixes included in this release meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The CMS 7.1 rev. 130926 initial release includes all the fixes from 7.0 Update-2.
The main highlights in this release are:- SPEAK UI framework.
- New dialogs for inserting links to Sitecore items and for selecting media are used in a number of places.
- Rules Engine enhancements.
- The Sitecore Item Web API (previously available as a separate download) is now distributed as part of the CMS.
- Sitecore MVC now supports Microsoft ASP.NET MVC 4, along with other fixes and improvements.
- All supported browsers now render the Sitecore Desktop and other Sitecore clients using "standards" mode.
- Starting with this release, Internet Explorer Compatibility View mode is no longer supported.
System requirements
The following system requirements have changed:- Sitecore CMS 7.1 requires Microsoft ASP.NET MVC 4 to be installed on the server.
- Starting with this release, Internet Explorer Compatibility View mode is no longer supported.
New and updated documentation
- Existing documentation that has been updated for CMS 7.1:
- Installation Guide
- Content Author's Cookbook
- Developer's Guide to Item Buckets and Search
- Engagement Analytics Configuration Reference
- Marketing Operations Cookbook
- Rules Engine Cookbook
- Sitecore MVC Developer's Reference Guide
New features
- Sitecore Item Web API
- The Sitecore Item Web API, which was previously available as a separate download, provides access to an HTTP-based REST-style web service that outputs JSON and enables HTML5, JavaScript, and mobile applications to retrieve and manipulate Sitecore content efficiently and securely.
- In Sitecore 7.1, the Item Web API is enabled by default for the shell site because the Sitecore SPEAK UI framework depends on the Item Web API. Sitecore 7.1 contains a number of new dialog boxes based on the SPEAK framework. A configuration file for Item Web API has been added - Sitecore.Speak.ItemWebApi.config. This config file can affect some settings in the Sitecore.ItemWebApi.config file.
- You can disable the Item Web API, but this is not recommended on Content Management instances, as it causes a number of dialog boxes to stop functioning.
- Sitecore SPEAK UI framework.
- Sitecore SPEAK is a UI framework for building web applications in Sitecore. SPEAK is a replacement for Sheer UI. SPEAK has been created to provide a strict and streamlined approach to develop application UIs in Sitecore, enable reusing of UI elements and enforce a consistent look and feel. Sitecore SPEAK provides a library of components that accelerates development.
- Sitecore SPEAK development requires Visual Studio and the free Sitecore Rocks plug-in. The development and presentation layer tools in the Sitecore Desktop, such as the Presentation Details dialog box, do not support development or configuration of SPEAK components or applications.
Deprecated and removed features
- Sitecore is deprecating the Developer Center application. The application is still available in 7.1, but will be removed in a later release. We recommend that developers use Sitecore Rocks instead.
- The Grid Designer tab (which appeared when you selected a layout in the content tree) has been removed from the Content Editor. (390432)
- The following properties that were deprecated in a previous release have now been removed: (361818)
- Sitecore.Data.Fields.ImageField.InternalPath
- Sitecore.Data.Fields.ImageField.MediaPath
- Sitecore.Data.Fields.ImageField.Src
- Sitecore.Data.Fields.ThumbnailField.InternalPath
- Sitecore.Data.Fields.ThumbnailField.MediaPath
- Sitecore.Data.Fields.ThumbnailField.Src
- The Sitecore.Data.Fields.MediaPath class was deprecated in a previous release and has now been removed. (350772)
- The Sitecore.Mvc.Pipelines.Response.RenderPlaceholder.MyInvoker and MyActionDescriptor classes were not functional and have been removed. (383163)
- The Sitecore.Mvc.Data.ItemLocator.GetPath() method has been marked as obsolete, because the name was not accurate (in certain cases, the method returns the ID of the item). Instead, the ItemLocator.GetPathOrId() method has been introduced. (381450)
- The Sitecore.Rules.Conditions.KeywordsCondition class has been marked as obsolete, because it duplicated the functionality of the HasKeywordsCondition class. (349958)
- The Sitecore.Analytics.Rules.Workflows.Conditions.NowCondition class has been marked as obsolete, because it depended on being executed in a workflow context. Instead, the new Sitecore.Rules.Conditions.DateTimeConditions.NowCondition class should be used. (387201)
- The Sitecore.Rules.Conditions.WhenField class has been moved to the Sitecore.Rules.Conditions.FieldConditions namespace. The old class has been marked as obsolete. (349904)
- The Sitecore.Rules.Conditions.WhenTemplateIs class has been moved to the Sitecore.Rules.Conditions.ItemConditions namespace. The old class has been marked as obsolete. (349905)
Breaking changes
- A number of UI classes have breaking changes, for example, changing the type of a property from Scrollbox to Border. These changes should not affect your solution unless you have overridden or extended the functionality in the Sitecore client, for example, if you have made changes to the Content Editor or certain dialog boxes.
- Two JavaScript files that were required in previous versions to support different browsers are no longer needed and have been removed from the clean distribution: \sitecore\shell\Controls\Gecko.js and \sitecore\shell\Controls\InternetExplorer.js. If you have developed custom applications or dialogs that depend on these files, you must change your code to refer to \sitecore\shell\Controls\Browser.js instead.
Important changes
- Support for Microsoft ASP.NET MVC 4 (393877, 379517)
- Sitecore MVC now supports ASP.NET MVC 4 by default.
- As a consequence of this, CMS 7.1 does not support ASP.NET MVC 3.
- Sitecore MVC is now a requirement and enabled by default. (388494)
- Because Sitecore MVC is now enabled by default, you will no longer see a Web.config.MVC or a Web.config.WebForms file after you perform a clean installation.
- The definition items for rule conditions and rule actions are organized in a new structure in the content tree (under the "/sitecore/system/Settings/Rules/Definitions/Elements" folder).
- If you upgrade an existing solution to CMS 7.1, any custom conditions and actions will be moved to a folder named "Elements/Custom" and assigned a tag named "Custom."
- If you install a package that contains conditions and actions from a previous CMS version, the conditions and actions must be moved to a folder below the "Elements" folder before they will appear in the Rule Set Editor. If you create new folders below "Elements" to hold your conditions and actions, you must assign appropriate tags to the element folders before the conditions and actions will show up in the Rule Set Editor.
- Sitecore.ContentSearch API
- The algorithm used to populate the computed field "calculateddimension" has been adjusted. After this change, images are assigned a label of "small," "medium," "large," or "huge." The labels "extra large," "mega large," and "enormous" are no longer used, but can still appear in search results until you rebuild your search indexes. (387444)
- Changes in the Image field
- When you assign an image to an Image field, Sitecore no longer adds a "mediapath" and an "src" attribute to the xml that is stored in the field. Both attributes have been deprecated since 6.3 Update-2. Any code that still uses these attributes should be changed to use MediaManager.GetMediaUrl() in order to generate and output consistent URLs. (388398, 307740, 313218)
- Changes in the General Link field
- When you use the General Link field and create an internal link or a media link, Sitecore no longer adds a "url" attribute to the xml that is stored in the field. The "url" attribute is still added when you create other types of links, for example, external links. (388400)
- This release introduces two new third-party DLLs in the /bin folder:
- EcmaScript.NET.modified.dll, v0.1.1.0.
- Yahoo.Yui.Compressor.dll, v2.1.1.0.
Improvements
-
Rules engine improvements
- Conditions and actions are now associated with tags. This allows the rule editor to ensure that only conditions and actions that are relevant get displayed to the user.
- The folder structure for rules has been reorganized to support the new features. All conditions, actions, operators, macros, and so on are now located under a "Definitions" folder with conditions and actions in a subfolder named "Elements" (and further grouped into sections).
- A number of existing conditions and actions have been moved to a folder named "Obsolete." These conditions and actions are likely to be removed in a future release. (353737, 362731, 353636)
- To avoid too much complexity, tags are assigned to the element sections (using a "Tags" subfolder) instead of assigning them to individual conditions and actions.
- The visibility of elements in a section (or the entire section) can now be controlled dynamically, so certain conditions or actions only show up in the UI if DMS is enabled. This is done by creating items with rules in the "Visiblity" subfolder for the section.
- A new pipeline named "getRenderedRuleElements" has been introduced. The pipeline allows developers to affect which conditions and actions get displayed in the rules editor.
- The Rule field now supports relative paths in the Source for the field using XPath. For example, you can now specify a query such as "query:../.." as the source for a Rule field.
- A number of new conditions have been introduced: "Day of week" (Monday-Sunday), "Day of Month" (1-31), "Month of Year," "Current User Domain Name," and "User Profile Numeric Condition." (374543, 374140, 349654)
- A new "Set Validation Result" action makes it possible to create rule-based item validators. The action allows you to specify the message and error level that your validator should return. (352699)
- A new "Log Message" action allows you to write a message to the log file when a rule is executed. (374626)
- The "Text" field on the "/sitecore/templates/System/Validation/Validation Rule" template has been reintroduced (after being removed in CMS 6.4). This field allows you to override the message that is displayed to the user when the validation rule reports a validation error. (375280)
- The condition with the text "where the current user is a member of the [specific] role" now allows you to select multiple roles and allows you to select the role(s) from a list of existing roles. (374625)
- The Rule Set Editor now displays a warning if you have not specified values for all required actions and conditions when you click "OK" in the dialog box. (387841)
- The names and descriptions of a number of conditions and actions have been changed to make them more consistent and descriptive. (393207, 363513, 349917, 382439)
-
Link database
- The link database now registers items referenced in rules. (372472)
-
Dialog box improvements
- All Sitecore dialog boxes now use an overlay on the browser window. Previously, many dialog boxes were opened in a modal dialog box or as a new window in a browser.
- The following dialog boxes have been redesigned. They are now based on the Sitecore SPEAK UI framework and use the Item Web API:
- Insert Link dialog
- Insert Anchor dialog
- Insert Email Link dialog
- Insert Sitecore Item dialog
- Select Media dialog
- The redesigned dialog boxes are based on the Sitecore SPEAK UI framework, which is based on Sitecore MVC, and use the Sitecore Item Web API. As a consequence, the new dialog boxes do not work if you disable Sitecore MVC or the Sitecore Item Web API.
-
Item Web API improvements
- You can now send standalone authentication requests to the Item Web API. The action is named authenticate, so requests should be sent to /-/item/v1/-/actions/authenticate. (393116)
- To avoid problems with cached data, the Item Web API now sends HTTP headers that instruct clients not to cache responses. (390672)
- The Item Web API would sometimes create empty media items. This could occur if a request for creating a media item was sent using credentials for a user that did not have item:create permissions to the parent item. This has been fixed so that the system now returns a response with an AccessDeniedException error instead of creating an empty media item. (393416)
-
Setup.exe installation
- The setup.exe now checks if Microsoft ASP.NET MVC 4 is installed on the server before installing Sitecore. (388495)
- The setup.exe now installs Sitecore with MVC by default. Therefore, MVC is enabled by default.
- The Sitecore Login page now has a new client interface called "Launch Pad." (388251)
- The Launch Pad provides access to applications built with the Sitecore SPEAK UI framework.
- By default, CMS 7.1 does not include any applications built with SPEAK.
- SPEAK applications are installed separately and will appear on the Launch Pad when installed.
- Sitecore now logs additional system information when Sitecore is started to help with troubleshooting. The following information is logged:
- The UTC offset of the server. (387559)
- The machine name of the server. (387560)
- The name of the IIS application pool. (387562)
- By default, the ShowVersion processor in the <initialize> pipeline now outputs information about all DLLs in the /bin folder. (354032)
-
Sitecore MVC
- A new system rendering named "ItemRenderer" allows you to render a specific item using its Renderers field. To use it, simply add the ItemRenderer rendering to the layout details and point the data source to the item you want to render. (369708)
- The MvcSettings class now exposes the various locaters as properties (ItemLocator, ControllerLocator, and ModelLocator), rather than having to call MvcSettings.GetRegisteredObject<…> to get a reference to a locator. (377734)
- It is now possible to substitute the built-in PipelineService class in Sitecore MVC. For example, this is useful for unit testing. To override the PipelineService, you can now use the following code:MvcSettings.RegisterObject<PipelineService>(() => new MyPipelineService());
-
Sitecore.ContentSearch API
- The SitecoreItemCrawler class is no longer marked as sealed. Customers can now override the class. (393054)
- A new virtual field "updateddaterange" has been introduced in the default search index configuration, along with a new "Updated Date" facet. (387446)
-
Renderings and layouts
- The Placeholder template now use a $name token so that the "Placeholder Key" field is automatically filled in when you create a new item. (381738)
-
Media Library
- The versioned and unversioned Jpeg templates now have fields for storing geolocation meta-data (Latitude, Longitude, LocationDescription, CountryCode, ZipCode). The fields are added to support future features. In the current version, they are not populated when you upload JPEG images that contain geolocation meta-data. (393951)
- All supported browsers now render the Sitecore Desktop and other Sitecore clients using "standards" mode. Previously, the Sitecore clients were rendered using "quirks mode" in Internet Explorer. (389935, 392576)
- The DOCTYPE for the Sample Layout was changed so it no longer makes IE use "quirks mode" when rendering pages. The same change was made to the layout template file that is used when you create new layouts.
Issues resolved
-
Content Editor
- After renaming a media item, the path in Image fields would not be updated to point to the new item. The images would, however, be rendered correctly on the website. This has been fixed so the displayed path now is correct. (368366, 388398, 307740, 313218)
- When a General Link field contained an internal link (or a media link) and the target item or one of its ancestors was renamed, the General Link field would continue to display the old path to the item. This has been fixed. (385191, 319102)
- [IE8] When you opened the Rich Text Editor in Internet Explorer 8, there would sometimes be a horizontal scrollbar, and the Design and HTML tabs at the bottom of the window would not be visible. This has been fixed.(391745)
-
Page Editor
- In the Page Editor, the "Navigate to item" functionality from the ribbon did not work if the site used a custom VirtualFolder setting. Instead of opening the selected item, a page would appear with the following error message: "The requested document was not found." This has been fixed. (387315)
-
Sitecore MVC
- When you used MVC to render pages, the system did not take fallback devices into account when determining which device to use to render the page. This has been fixed. (377838)
- The system did not resolve the item correctly if you specified an item ID (instead of a path) in the scItemPath key for a route. This has been fixed. (374577)
- When an exception occurred during the rendering of a MVC page, a detailed ASP.NET error page would always be displayed, even when the value of the standard .NET customErrors web.config setting was set to "RemoteOnly" or "On". This has now been fixed. (370646)
- If an MVC runtime error occurred during the rendering of an MVC page, the system returned an HTTP status code of 200. This has been fixed so now an HTTP status code of 500 is returned in this situation. (386104)
- The Html.RouteLink helper sometimes generated incorrect links to an item when using a Sitecore route. This has been fixed. (378116)
- When a request matched an IgnoreRoute, Sitecore's custom MVC route handler threw a System.NotSupportedException exception. The user would not see the exception, but it could show up for developers during debugging and could also be picked up by trace tools. This has been fixed. (380007)
-
Rules and conditions
- The rules editor did not support macros located outside the Macros folder. This has been fixed by making it possible to refer to macros by their ID instead of their name when defining a condition. (374006)
- The "/sitecore/templates/System/Rules/Validation Rule" template did not have any sections or fields. This has been fixed so now the template has a Name and a Rule field. (352897)
- The regular expression operator was not evaluated correctly. This applied to all conditions that were based on the StringOperatorCondition class. This has now been fixed. (326437)
- The condition with the text "where the item is in the [specific] workflow state" did not work correctly. This has been fixed. (387266)
- The condition with the text "where the item version [compares to] [number]" did not work correctly. This has been fixed. (391395, 370548, 370548, 395306)
- The condition with the text "where visitor [specific] tag is not empty" did not work correctly. The condition returned true if the specific visitor tag was empty. This has been fixed. (370756)
- The condition with the text "when [the date] has passed" depended on being executed in a workflow context. This has been fixed so the condition can now be executed in any rule context. (387201)
- If you entered a non-integer value when configuring a condition that expected an integer value, such as the "where the traffic type [compares to] [specific value]" condition, an error would occur when the condition was evaluated. This has been fixed so now such conditions only allow you to assign integer values. (387860, 387853)
- If an exception was thrown during the evaluation of a condition or during the execution of an action, an error would appear. In the case of an item saved rule, this could prevent you from doing further work in the Content Editor. This has been fixed so now the execution of the rule is aborted in case of an error, and the exception is written to the log file.(387861)
- When the rule engine evaluated a rule set, it threw an exception if the expected rule context type for a condition or an action was different from the current rule context type. This has been fixed so now such conditions/actions are skipped. If a condition is skipped, no actions are executed. If an action is skipped, the other actions are still executed. (387201)
- The Rule field in the Content Editor was missing scrollbars when the contents of the field exceeded the visible area. This has been fixed. (387835)
- The Rule Set Editor dialog box was missing scrollbars when displaying conditions with long names. (354217)
-
Media Library
- When you selected versioned media files in the Media Library, certain file types would be missing a "View" button on the Media tab of the ribbon. This only happened for versioned media, not unversioned media. This has been fixed to make the behavior consistent, so now the "View" button appears for versioned media based on the Pdf, Doc, Docx, and Document templates. (381426)
- The unversioned Flash template contained several versioned fields, such as Width, Height, Dimensions, and FrameRate. This could cause different language versions to contain inconsistent information. This has been fixed by making these fields shared. (378329)
-
Executive Insight Dashboard
- When you exported Dashboard data to Excel, the header in the generated file would sometimes contain incorrect information for "Date From" and "Date To." This has been fixed so "Date From" and "Date To" always correspond to the selected time range. (392258)
- When you used the Site filter drop-down list in Executive Dashboard, it would sometimes display the name of sites for which the enableAnalytics attribute is set to false. This has been fixed so that such sites no longer are displayed in the list. (392110)
Note: This fix turned out to have unintended side-effects and was therefore reverted in 7.1 Update-1. Instead, a new <ignoreSites> section has been added to the Dashboard config file in 7.1 Update-1 (ref. no. 399223). [Added January 31, 2014]
-
Security applications
- [FF] When you created a new user and selected the "Open the User Editor" option in the wizard, nothing happened. This has been fixed so now the Edit User dialog box opens as expected. (392641)
-
Miscellaneous
- When you ran the Broken Links report tool on the clean master, web, and core databases, a number of broken links would be reported. The items in question have been modified so that they no longer contain broken links. (372635, 378488, 320979)
- The /App_Config/Prefetch/web.config file has been renamed to webdb.config because it prevented customers from precompiling their Sitecore websites. (321649)
- The thumbnail generator configuration in the web.config file pointed to a non-existent file (/sitecore/shell/Themes/standard/images/document_music.png). This caused the error message "Could not run the 'getMediaStream'" to appear in the Sitecore log file. This has been fixed so the configuration now points to a file that exists. (338738)
- The VerticalTabstrip class referred to a non-existent file (/sitecore/blank.gif). This did not affect the functionality of the system, but caused 404 Not Found errors to appear in the IIS logs and when you used developer tools such as Fiddler. This has been fixed. (373382)
- When you serialized items from the core database using third-party tools, such as Hedgehog TDS, the operation could fail with an error. This was due to duplicate names being under a single folder. This has been fixed by renaming a number of items named "Divider" in the core database. (381310)
- The description of the Media.DisableFileMedia web.config setting could be difficult to understand. The description has been updated to make it clearer how the setting works. (383683)
- The instructions that appeared on the /sitecore/admin/pipelines.html page when pipeline profiling was disabled could be confusing. The instructions have been updated. (386400)
- The assembly version number of the Sitecore.Apps.Loader.dll was incorrectly set to "1.0.0.0". It has been fixed so now the version number is "1.0.0.4525" and the product version is listed as "1.0.0 rev. 130822". Apart from this, the assembly is identical to the version distributed with CMS 7.0.0020(383288)
1.4. Release History for Sitecore CMS 7.0
Some of the issues described on this page contain internal reference numbers. You can use these reference numbers when communicating with Sitecore about a particular issue or feature.
As part of our commitment to continually improving our software and listening to our customer’s feedback, Sitecore regularly releases new versions of our CMS product. Each release undergoes careful quality assurance procedures to minimize the number of issues.
April 10, 2014
Released Sitecore CMS and DMS 7.0 rev. 140408 (7.0 Service Pack-1, originally released as 7.0 Update-5).
Note: This is a product Service Pack. Sitecore recommends customers to install service packs for any feature release that the customer has installed. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update are:
- Security vulnerability fixes to make Sitecore more secure
- Support for running the Sitecore user interfaces in Internet Explorer 11
System requirements
- Microsoft Internet Explorer 11 is supported by CMS 7.0 Service Pack-1, originally released as 7.0 Update-5.
Issues resolved
-
Potential security vulnerabilities backported from 7.1 Update-2:
- Sitecore Corp. would like to give credit to Richard Turnbull at NCC Group for the discovery of the following vulnerability and for his cooperation:
Authenticated users could potentially misuse the Package Upload wizard to upload zip files to the system, even if they did not have access to the Installation Wizard. This has been fixed. (403551, 403900, 400292) - The xmlcontrol did not perform sufficient validation of the control name to render. This could be used to make the xmlcontrol load iframes or images. This has been fixed. (403892, 403900)
- Sitecore Corp. would like to give credit to Richard Turnbull at NCC Group for the discovery of the following vulnerability and for his cooperation:
-
A number of IE11 issues have been fixed, including (but not limited to):
- When you clicked the Start button, the Start menu did not open. This happened in Internet Explorer 11 if you were using non-Compatibility View mode. This has been fixed. (402796)
- The Content Editor ribbon displayed multiple tabs on the ribbon at the same time. This happened in Internet Explorer 11 if you were using non-Compatibility View mode. This has been fixed. (402801)
- The Page Editor dialogs appeared unresponsive when using Internet Explorer 11 in non-Compatibility View mode. This has been fixed by making Internet Explorer switch to IE10 mode for the Page Editor. (402809)
January 22, 2014
Released Sitecore CMS and DMS 7.0 rev. 140120 (7.0 Update-4).
Note: This is a product Update. Sitecore recommends upgrading to this release when the fixes included in this release meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update are:
- Includes all the fixes from 6.6 Update-7.
- A number of issues related to Item Buckets and Sitecore.ContentSearch have been addressed.
- A number of potential security vulnerabilities have been fixed.
- A number of situations where the system did not log sufficient audit information have been addressed.
- A number of issues have been fixed where the system used the client language instead of the content language.
- A number of issues related to the Package Installation wizard and the Package Designer have been addressed.
- The Sitecore clients now support configuration of session time-outs.
- Contains a number of improvements and fixes related to serialization of items, users, and roles.
Improvements
- This release incorporates all changes made for 6.6 Update-7. For additional information about these changes, please refer to the release notes:
-
Performance
- A new setting named ContentSearch.Indexing.DisableDatabaseCaches in the Sitecore.ContentSearch.config file allows you to specify whether to populate database caches with data during indexing. The new setting only affects Sitecore.ContentSearch indexes. To control this behavior for Sitecore.Search indexes, you can use the Indexing.DisableDatabaseCaches setting in the web.config file. (397452)
-
Serialization
- When you revert serialized user accounts, the system no longer allows your own user account to be deleted as part of the operation. The system now displays a warning in this situation and will not revert any of the selected user accounts. (338425, 392202)
- When you revert serialized user accounts or roles, the system now asks for confirmation before reverting or deleting the user accounts and informs you about the actions that are performed. (392202, 392206, 338425, 392501)
Important changes
- The Insert Link dialog box has been refactored to use a UrlHandle to transfer parameters to the dialog box. (375099)
- Notice that this change might break third-party code that reuses the Insert Link dialog box and passes parameters directly to the control in the URL. This type of code has to be reworked to use a UrlHandle.
-
Sitecore.ContentSearch Linq layer
- The SingleOrDefault method did not work correctly. If there was more than one element in the sequence, it would return the default value. This has been fixed so that it now throws an exception if there is more than one element in the sequence. Note that this change can potentially break existing code that uses this method if the code does not handle such exceptions. (395465)
-
Sitecore.ContentSearch API
- For clarity, the ContentSearch.ParallelIndexing.LimitCores setting has been renamed to ContentSearch.ParallelIndexing.MaxThreadLimit in the Sitecore.ContentSearch.config file. This is because the setting controls the number of indexing threads, not the number of processor cores utilized for indexing. (398221)
Deprecated classes, methods, and properties
- The ContentSearchConfigurationSettings.ParallelIndexingCoreLimit property has been deprecated in favor of the new ParallelIndexingMaxThreadLimit property. (398221)
Issues resolved
-
Potential security vulnerabilities
-
Sitecore Corp. would like to give credit to Joel Voss at Leviathan Security Group for the discovery of the following vulnerability and for his cooperation:
The Sitecore clients did not check whether session cookies were expired before trying to re-login a user. This could potentially be used to copy session cookies and get access to the Sitecore clients, even if the previously logged in user had logged out. This has been fixed so that session cookies cannot be reused after the user has logged out. (396307) -
Sitecore Corp. would like to give credit to Michael J Minchinton at TotalJobsGroup.com for the discovery of the following vulnerability and for his cooperation:
A non-persistent cross-site scripting vulnerability has been fixed in the xmlcontrol. (396372) - Sitecore no longer allows the Start URL property on a user profile to redirect to an external URL. If a user tries to log in with this type of Start URL, the system now displays an error message and does not redirect the user to the external URL. (384177)
- The Insert Link dialog box transferred XML in the query string. This was reported as a potential security vulnerability even though it could not be used to inject JavaScript on the page. This has been fixed by reworking the dialog box to use a UrlHandle. (375099)
-
Sitecore Corp. would like to give credit to Joel Voss at Leviathan Security Group for the discovery of the following vulnerability and for his cooperation:
-
Performance
- The <visitEnd> pipeline that cleans up expired visits could degrade the overall performance of the system, including page delivery times, when the solution contained engagement plans. The SQL that is executed by this pipeline has been reworked to reduce the impact on performance. (395391)
-
Engagement Analytics
- When you edited a conditional rendering rule, the Rule Set Editor dialog box displayed two sections named "Actions." This has been fixed so all actions are displayed in a single section. (382530)
-
Content Editor
- If you switched to a different database than the master database, deleted an item, and selected "Remove Links" in the breaking links dialog box, the links would be removed from the master database instead of the selected database. This has been fixed. (362884, 381208, 396966)
- If an Image field contained a broken link, an ArgumentNullException error would appear when you clicked the Browse button above the field. This has been fixed so that now the Media Browser opens without an error. (343230)
- On the ribbon, on the Navigate tab, the Back button, was always disabled, even after you selected another item in the content tree. This has been fixed so that now the Back and Forward buttons work as expected. (371037)
- If you did not have item:read permissions for one or more template sections, and you selected an item based on the template, an ArgumentNullException would appear with the following message: "Null IDs are not allowed." This has been fixed so that the display names of template sections are rendered in the Content Editor even if you do not have read permission for the definition items. (309257)
- The TreelistEx field allowed you to open the dialog box to edit the field value even if you did not have write permissions for the item or for the field. This has been fixed. (362877)
- When you browsed items in the Content Editor using a non-administrator account and you had Standard Fields enabled, an AccessDeniedException error would sometimes appear inside the Tracking field control. This has been fixed by displaying the field in a read-only mode if you do not have sufficient permissions to modify the tracking information. (355595)
- The Validation Result dialog box did not encode HTML characters. This could cause JavaScript in fields to be executed when rendering the result of the validation. This has been fixed. (387158)
-
Page Editor
- If you entered a question mark in the name of a condition in the Personalize the Component dialog box, or if you entered a question mark in a variation in the Test the Component dialog box, an ArgumentNullException error would appear when you moved the focus out of the text box. This has been fixed. (354846)
-
Rich Text Editor
- The Edit HTML dialog box that is available for Rich Text fields did not remove script tags from the HTML even when the HtmlEditor.RemoveScripts setting was enabled. This has been fixed. (382284)
- When you opened the Rich Text Editor, a JavaScript error would appear if the system was configured so that you did not have access to the HTML view in the Rich Text Editor. This has been fixed. (384844, 398577)
- When you clicked Accept in the Rich Text Editor, your changes would sometimes be discarded and the following error message would appear: "The operation could not be completed. Your session may have been lost due to a time-out or a server failure." This occurred because the SessionTimeout JavaScript setting was not available in the Rich Text Editor. This has been fixed. (371633, 378208).
- When you opened the Rich Text Editor, a warning would be written to the browser's developer console with the following message: "SessionTimeout not found in settings scForm.Settings ." This has been fixed by ensuring that the SessionTimeout property is available. (371633, 381315)
-
The Insert Sitecore Media dialog box in the Rich Text Editor and the Media Browser dialog box in the Page Editor used the client language instead of the content language.
- When you uploaded an image, the media item would be created in the wrong language. This has been fixed. (381197, 325536, 386809)
- When you selected an image, the ALT text and other properties would be read from the wrong language, and versioned images would display the wrong language version of the image. This has been fixed. (351426, 350095, 364315, 350093)
- If you selected an image that did not have a version in the client language, the following error message would appear: "The selected item is not an image." This has been fixed. (327347, 381193, 381236)
- The dialog box used the client language when displaying thumbnails of images. As a result, the thumbnails would sometimes be missing or display a wrong image. This has been fixed so that now the dialog box uses the content language when displaying thumbnails. (386608, 386624, 393281)
- After inserting a versioned image in a rich text field, the image version from the client language would be displayed instead of the version from the content language. This has been fixed. (350092, 329810)
- After uploading media in the Media Browser dialog box, a Content Editor window (for editing the metadata of the media item) opened in the client language instead of the content language. This has been fixed. (390365)
-
Other issues where the system used the client language instead of the content language.
- In the Rich Text Editor, when you opened the Map Editor for a versioned image, the dialog box displayed the image in the client language instead of the content language. This has been fixed. (399166)
- The Page Editor used the client language when displaying images. As a result, images would sometimes be missing or display a wrong language version. This has been fixed so that images are always rendered in the content language. (391356)
- The "Alt Required" field validator used the client language instead of the content language. This has been fixed. (374021, 381250)
- When you performed certain operations on an item, the confirmation dialog box contained the display name for the item from the client language instead of the content language. This happened when you deleted items, moved items, or used the Copy To command. This has been fixed. (368382, 368430)
-
Item buckets
- When you worked in the core database and created a new item under an item bucket container, the newly created item would remain located directly under the item bucket container. This has been fixed so that now the item is moved to an appropriate subfolder in the hidden item bucket folder structure. (399831)
- When you worked in the core database and copied, cloned, or moved an item that was stored in an item bucket container, the newly created item had the same value in the Bucket Parent Reference field as the original item. This has been fixed by clearing the Bucket Parent Reference field when copying, cloning, or moving items that are stored in a bucket. (399830, 399831)
-
Search tabs in the Sitecore clients
- In certain cases, you could not open the Search Options menu after performing a search. For example, this could happen if a different user had recently deleted an item and your search expression had a location filter that pointed to the item. This has been fixed. (401040)
- The Search tab in the Insert from Template dialog box appeared before the Browse tab. This was inconsistent with other dialog boxes. This has been fixed so that the Search tab now appears after the Browse tab. (382707)
-
Sitecore.ContentSearch API
- The Lucene provider did not apply the boosting of index fields correctly for boost factors specified on template fields. This has been fixed. (392310, 398429, 399544)
-
Sitecore.ContentSearch Linq layer
- When you executed Linq expressions with multiple OR conditions, the generated query sometimes contained extra parenthesis. This could change the evaluation of the search expression, for example when boosting one or more search terms. This has been fixed. (399539)
- When you executed Linq expressions that applied boosting to operators such as Contains, StartsWith, EndsWith, and Equals, the boosting was not applied correctly, and the resulting search expression would be missing the boost factors. This has been fixed. (395160)
- When you executed Linq expressions, the boosting of expressions in parenthesis was not applied correctly, and the resulting search expression would be missing the boost factors. This has been fixed. (395161)
-
Audit information
- When you created a new role, the system did not log audit information about the action. This has been fixed. (393572)
- When you deleted a role, the system did not log audit information about any child roles that were removed from the role as part of the deletion. This has been fixed. (393648, 393655)
- When you reverted roles from serialization, the system did not log audit information about any child roles that were removed from the role as part of the deletion or any parent roles that the current role would be removed from. This has been fixed. (393718)
- When you added or removed roles for a user account, the system did not log audit information about the action. This has been fixed. (353944)
- When you added or removed managed domains for a user account, the system did not log audit information about the action. This has been fixed. (393549)
- When you deleted a user account, the system did not log information about the roles and managed domains that were removed from the user as part for the deletion. This has been fixed. (393555, 393565)
- When you edited a domain, the system did not log audit information about the action. This has been fixed. (393750)
- When you kicked a user from the system using the Kick User page, the system did not log the name of the user. This has been fixed. (375413)
-
Security applications
- If you deleted a security domain using the Domain Manager, the domain could still appear in the list of managed domains for one or more user accounts. This has been fixed so that now the system updates the managed domain list of user accounts when a domain is deleted. (393753)
- In the User Manager, when you generated a new password and copied it to the clipboard, ampersands in the password were HTML encoded. This has been fixed so ampersands are no longer encoded when you copy them to the clipboard. (374602)
-
Security API
- The session time-out for the Sitecore clients could not be configured. This has been fixed so that now the Sitecore clients respect the configured session time-out, including the ability to use sliding session expiration. (309252, 390337, 322565)
-
Media library
- When you uploaded media, the system did not check template inheritance when trying to find the nearest media folder. This has been fixed. (356620)
- If a media item contained an invalid character, such as a colon, in the File Path field, the following error message would appear when you selected the media item: "The given path's format is not supported." This has been fixed so that now a broken image icon is displayed, and you can modify the media item. (352900, 368970)
-
Media API
- If an invalid value was encountered in the If-Modified-Since HTTP header of a media request, the system would write a message to the log file using "ERROR" as the log level even though the media file would be served correctly to the client. This has been changed so that now the system uses "WARNING" as the log level for these messages. (386535)
- An error message would be written to the log file if the If-Modified-Since HTTP header of a media request contained a date stamp that specified "UTC" as the time zone. This has been fixed so that now the media request handler parses such dates correctly. (386535)
-
Renderings and layouts
- If the text attribute of a link contained ampersands, the <renderField> pipeline did not render the link correctly. Only part of the text was output, and the A-tag would be missing the href attribute. This has been fixed so that now such links are rendered correctly. (385891)
- When you specified the disable-web-editing attribute on an XSL control, the attribute would be rendered as part of the resulting HTML tag. This has been fixed so that now this attribute is no longer rendered as part of the HTML. (315610)
- When you specified the line-breaks attribute on an XSL control, the system ignored the value of the attribute when rendering Multi-Line Text fields or memo fields. This has been fixed. (319305)
-
Sitecore MVC
- Sitecore MVC did not take the OutputCacheAttribute into account when a controller action was invoked. This has been fixed so that now the ActionResult is cached if an OutputCacheAttribute is specified. (396502, 397545, 397904)
-
Package Installation
- When installing items, if you selected "Apply to all," the choice would be applied to items with conflicts even if some of the items had their own installation options specified in the package. This has been fixed so that the installation options specified for the individual items are used when available. (388356)
- When you installed a package that contained system templates, the following error could appear during installation: "Cannot install templates structure. There are some cyclic references or some template is under an item having been created by that template." This has been fixed so that packages that contain system templates are installed correctly without installation errors. (353276)
-
Package Designer
- If you added items to a package, any installation options that you specified for the items would be ignored. This has been fixed. (341861, 357200)
- If you added items to a package and selected the "Merge" installation option, the drop-down box with merge options was not enabled. This has been fixed. (341861, 357200)
- You could not enter a license for your packages. When you tried to edit the license, an empty dialog box would appear instead of the Rich Text Editor. This has been fixed. (334616)
-
Localization
- When you edited an Internal Link field and clicked the Insert Link or Insert Media Link buttons, the insert link dialog boxes displayed the content tree using the client language instead of the content language. This has been fixed. (356026)
- When using the French client language (which is not installed by default), a JavaScript error occurred when you navigated away from an item that had unsaved changes. This happened because the French version of the "There are unsaved changes" prompt contained a single quote that was not escaped correctly. This has been fixed. (346245)
- A number of phrases could not be translated in certain areas of the product. This has been fixed. (369613, 346989)
-
Serialization
- When you serialized or reverted user accounts and roles, the system did not show an error message if the system failed to serialize or revert one or more user accounts or roles. This has been fixed. (392026, 392028, 392025, 392183, 392202, 392501)
- When you tried to revert one or more roles and no roles had been serialized to disk, nothing would happen. This has been fixed by displaying a message in this situation. (392500)
- When you used the Domain Manager to revert domain roles and users, accounts that had no serialization files were not deleted. This has been fixed. (393759)
- The system did not clean up old serialization files for users that no longer existed when you serialized all user accounts. This could cause old user accounts to reappear when you subsequently reverted all accounts. This has been fixed. (392497)
- When you tried to serialize roles without selecting a role first, the system asked you to select a user (not a role). This has been fixed. (392620)
-
Multibrowser issues
- [Chrome] When you used Google Chrome on a machine with a non-English culture, for example Japanese, the Sitecore Client would sometimes not work, and a JavaScript error like the following could appear in the browser: "Uncaught SyntaxError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': 'Thu Nov 14 2013 18:27:20 GMT+0900 …' is not a valid HTTP header field value." This has been fixed. (398921)
- [Firefox] When you opened the Insert Sitecore Link dialog box, the content tree was not visible. This has been fixed. (385616)
- [Chrome, Firefox, Safari] When you changed the background image for the Sitecore desktop, the change would sometimes not take effect until you logged in again. This has been fixed. (390786)
- [Firefox] The first time you opened the Sitecore Start menu, the following message would appear in the browser's console: "Use of attributes' specified attribute is deprecated. It always returns true." This has been fixed. (390793)
-
Miscellaneous
- If you tried to access an item with a hyphen ("-") in the item name, and the encodeNameReplacements section was configured to replace spaces in URLs with "-", the system would not resolve the path correctly and would return a Not Found page. This has been fixed so URLs for these items are resolved correctly in this situation. (357706)
- When the system executed scheduled tasks, the context user for the scheduled tasks would sometimes be reported as a different user account than sitecore\Anonymous. This could happen if a user saved or published a content item at the same time as the scheduled task was executed and the scheduled task was executed in the same thread. However, this did not elevate security permissions for the scheduled task. This has been fixed so now the context user for scheduled tasks is always reported as sitecore\Anonymous. (383996)
- When one or more users subscribed to RSS feeds with item changes, the log file would sometimes contain an error message with the following message: "Unable to validate data." This was caused by an exception error in the FeedUrlOptions.ParseQueryString() method. This happened if the URL authentication for the RSS feed failed, for example, if the machine key was changed. This has been fixed so that now the system returns a 404 Not Found error page in this situation, and it does not write an error to the log file. (344739)
- If the system contained two field type definitions with the same name, an exception error would appear in the log file with the following message: "Item has already been added. Key in dictionary: '<fieldname>' Key being added: '<fieldname>'." This error prevented you from working in the Sitecore clients. This has been fixed so a more descriptive error message is written to the log file, and the Sitecore clients now work correctly. (356797)
- Sitecore wizards contained a reference to a non-existent firebugx.js file. This did not affect the functionality of the wizards but would show up when monitoring requests, for example, using the browser's developer tools or Fiddler. This has been fixed by removing the reference. (353071)
December 3, 2013
Released Sitecore CMS and DMS 7.0 rev. 131127 (7.0 Update-3).
Note : This is a product Update. Sitecore recommends that you upgrade to this release if the fixes included in this release meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlights of this update are:
- A large number of issues relating to Item Buckets and Sitecore.ContentSearch have been addressed, including performance issues and issues that affected multi-instance solutions.
- A number of issues related to the Multilist with Search and Treelist with Search field types have been addressed.
- A number of issues related to using the Sitecore clients with out-of-process session state modes have been addressed.
- An issue in CMS 7 has been fixed in the breaking links dialog that could cause the system to remove too many links from Rich Text fields when selecting the "Remove Links" option box.
- The logic for changing the traffic type for visits has been updated, and the Change Traffic Type field has been removed from the Campaign template.
Improvements
-
Sitecore.ContentSearch API
- The default index configuration now contains a <mediaIndexing> node that allows you to configure which file types (based on the extension or mime type) that should be indexed when the system indexes media items. (392253)
- The Lucene provider now implements a DocumentSize commit policy, equivalent to the DocumentSize commit policy that was introduced for the Solr provider In 7.0 Update-1. (390933)
- [Backported from the 7.1 Initial Release] The SitecoreItemCrawler class is no longer marked as sealed. Customers can now override the class. (393054)
- A new <documentBuilderType> node in the default index configuration file allows you to override the document builder class to modify how data is prepared for storage in the index and to apply any additional logic that you may require. (393724)
-
Multilist with Search and Treelist with Search field types
- When specifying the SortField parameter in the Source of a Multilist with Search or Treelist with Search field, you can now specify the sort direction to be descending by appending "[desc]" after the field name, for example "SortField=_name[desc]". If you do not explicitly specify a sort order, the default sort direction is ascending. (396874)
Note: Currently this does not work for tokenized fields and for date fields that include the time.
- When specifying the SortField parameter in the Source of a Multilist with Search or Treelist with Search field, you can now specify the sort direction to be descending by appending "[desc]" after the field name, for example "SortField=_name[desc]". If you do not explicitly specify a sort order, the default sort direction is ascending. (396874)
-
Content Editor
- The content tree is now able to display temporary items, which are items where item.RuntimeSettings.Temporary is set to true. Such items are displayed as static tree nodes that cannot be selected and cannot be dragged to another position in the tree. This is currently used to display the "There are hidden items in this container." node below item bucket nodes. (396198)
Important changes
-
Engagement Analytics
- The Change Traffic Type field has been removed from the Campaign template. The system now always uses the logic that was previously associated with the "Yes - if this campaign is triggered on the landing page option." This means that the system now only resolves and sets the traffic type when initiating a new visit and, if campaigns are triggered on subsequent page requests, the system no longer changes the traffic type over the lifetime of a visit. (393668)
-
Sitecore.ContentSearch Linq layer
- A number of Linq operators did not always return the expected results when passing a phrase as the parameter. This applied to the Contains, StartsWith, EndsWith, Equals, Like, and MatchWildcard operators. This has been fixed by making these operators use an analyzer and by making the operators create the correct multi-term query for phrase queries. As a result of this change, you might see a different set of results returned when using these operators. (389868, 396185, 396135)
- The EndsWith() operator now requires the specified field to be stored in the index with termvector offsets. If the field is not stored with termvector offsets, a warning will be written to the log file, and the operator will return 0 results. (389868)
Note: This fix was reworked in the 7.2 Initial Release. The EndsWith() operator now throws an exception if it is called for a field that is not stored in the index with termvector offsets (ref. no. 397998) . [Added March 11, 2014]
Deprecated classes, methods, and properties
- The ChangeTrafficType property of the Sitecore.Analytics.Data.Items.CampaignItem class has been deprecated, because the corresponding field on the Campaign template has been removed. (393668, 396841)
- The BucketItemAxes class has been deprecated. Instead, we recommend using the Linq layer and the axes of the Sitecore.Data.Items.Item class. (390837)
- The HideItem method of the Sitecore.Buckets.Pipelines.BucketOperations.BucketOperationProcessor class is no longer in use and has been deprecated. This change also affects the classes that have this class as a base class. (393711)
- The HideItem method of the Sitecore.Buckets.Pipelines.BucketOperations.CreateBucket.CreateBucketPipeline class is no longer in use and has been deprecated. (393711)
- The EnableTips property of the Sitecore.Buckets.Util.BucketConfigurationSettings class has been deprecated, because it was not in use. (391108)
Issues resolved
-
Engagement Analytics
- When a visitor triggered a campaign, the system updated the CampaignID for the visit even if the current page was not the first page of the visit. This has been fixed so now the system only sets the CampaignID for the visit on the first page of the visit. If the visitor triggers campaigns on subsequent pages, the campaign events will still be registered, but the system will not change the CampaignID. (389296)
-
Content Editor
- In CMS 7, when you deleted an item and in the breaking links dialog box, selected "Remove Links," the system would remove all links from Rich Text fields that contained a link to the item being deleted, including external links and links that pointed to other items. This has been fixed so the system now only removes the links that point to the item being deleted. The issue does not affect CMS 6.6 or earlier releases. (392562)
- In the content tree, if you clicked the empty area next to an item without any children, a subnode with the text "There are hidden items in this container." would appear, even if the item was not an item bucket container. This has been fixed. (389479)
- When you clicked the [+] icon in the content tree next to an item bucket container that only had hidden subitems, the [+] disappeared when the system displayed the subnode with the text "There are hidden items in this container." This has been fixed so a [-] icon is now displayed, allowing you to collapse the node again. (391110)
- When you clicked the [+] icon in the content tree next to an item bucket container that had both hidden subitems and normal (unbucketable) children, the system displayed only the regular items, making it difficult to see if there were any items stored in the bucket. This has been fixed so the text "There are hidden items in this container." now always appears when you expand the children below a non-empty bucket. (389199, 383532)
-
Page Editor
- If a user did not have item:create permissions to the current page, the user would not be allowed to pick a data source for a component, using the Search tab of the "Select the Associated Content" dialog box. This has been fixed so the Search tab now allows users to select an item to use as a data source. (394714)
- In CMS 7, the "Save and Close" and "Close" buttons were missing from the ribbon when you used the "Edit the related item" to make changes using the inline Content Editor. This has been fixed. (388002)
-
Multivariate testing
- When you tried to select a different component design for a variation, a Runtime Error message would sometimes appear and the log file would report a NullReferenceException error. This occurred if the current component for the variation had been added to the page with a blank value in the Placeholder field. This has been fixed so that now you can select a different component design in this situation. (393850)
-
Item buckets
- After you selected or cleared the "Is Displayed in Search Results" checkbox on a template field, the change did not take effect on search result pages immediately. This has been fixed. (392883)
- After switching to a different database and performing a search, in rare cases, wrong values would show up in search results for fields that had the "Is Displayed in Search Results" checkbox selected, or the values would be missing from the search results due to a problem with caching. This has been fixed. (392886)
- When you selected the Buckets checkbox on the View tab of the ribbon, the folder structure inside the bucket would sometimes not be visible in the content tree. This happened because, in certain cases, the bucket folders were set to be hidden. This has been fixed so the system no longer sets any of the bucket folders to be hidden when you convert an item to a bucket. The problem might still appear for already created buckets until you manually select to unhide any hidden bucket folders. (393711)
- After copying, cloning, or moving an item that was stored in an item bucket container, the newly created item had the same value in the Bucket Parent Reference field as the original item. If you then reverted the bucket, these items would be moved back under the parent of the original item. This has been fixed by clearing the Bucket Parent Reference field when copying, cloning, or moving items that are stored in a bucket. (393228, 397522)
Note: This issue was only partially fixed in 7.0 U-3. It was still reproduced when working in the core database. This problem has been fixed in 7.0 Update-4 (ref. no. 399830). [Added January 16, 2014] - The methods in the BucketItemAxes class in the API would sometimes return incorrect results. The class is now deprecated, but the methods have been fixed so they now return the expected results. (390837)
-
Search tabs in the Sitecore clients
- If you added a "location:" filter to your search query, the system applied the location filter incorrectly if you had changed the search logic for this filter to "must not". In this situation, the system returned search results from the entire content tree. This has been fixed so now the system combines the location filter with a restriction that any search results must be located below the current item. (394237)
- When you executed the "Configure Standard Values" quick action for a template without a standard values item, an error message would appear informing you that "The operation could not be completed." This has been fixed so the system now creates a standard values item for the template. (389834)
- When you tried to execute the "Archive" or the "Load Item" quick actions, nothing happened. This has been fixed. (395482, 398042)
- If you typed a search expression that contained a wildcard, such as "te?t" or "te*t", the system would sometimes return incorrect search results. This has been fixed. (397907)
- When you typed a search expression that started with a "+", such as "+title:text", a JavaScript error would occur when you clicked the Search button or pressed the ENTER key. This has been fixed so an error does not occur. (390345)
- When you typed a search expression with a square bracket without a matching closing bracket, such as "title:[", a JavaScript error would occur when you clicked the Search button or pressed the ENTER key. This has been fixed so an error does not occur. (390855, 394168)
- When you typed a range search expression, such as "price:[400 TO 500]", the search expression would appear twice in the Search field after you performed the search. This has been fixed. (390857)
- When a default or persistent bucket query was defined for an item, the Search field would only display each filter type (for example, template or author) once, even if the saved query contained a certain filter type multiple times. This has been fixed, except for "start:" and "end:", which should not be specified more than once in a query. (387948, 392693)
- If you changed the storageType of the _content field to "YES" in the index configuration and performed a search, the value of the _content field would be rendered as part of each search result. This has been fixed. Notice, however, that setting the storageType of the _content field to "YES" is not recommended and will lead to a substantial growth of your search indexes. (397434)
-
Issues related to search operations on Search tabs in the Sitecore clients
- When you executed the Apply Security Rule search operation, it only assigned the selected security settings to the first item in the search result. This has been fixed so now the selected security settings are applied to all the search results. (389852)
- When you executed the Apply Security Rule search operation, an IndexOutOfRangeException error message would appear if there were no search results. This has been fixed. (387829)
- When you executed the Apply Profile Score search operation, the selected profile cards were incorrectly assigned to the item that you had selected in the content tree as well as correctly assigned to the search result. This has been fixed so now the profile cards are only assigned to the search results, not to the current item. (388880)
-
Cosmetic issues on Search tabs in the Sitecore clients
- On items with a persistent bucket filter, you could click the icons next to the persistent filters in the Search field and toggle between MUST, MUST NOT, and SHOULD. This has been fixed so you can no longer toggle persistent filters. (383464)
-
Issues related to the Build a Search Query dialog box
- If you filtered the search results by a facet in the Build a Search Query dialog box, the dialog box would sometimes ignore the search filters from the search field and would therefore display incorrect search results. This has been fixed. (393088)
- When you opened the Build a Search Query dialog box, it would sometimes not load the existing search expression and the search field would be blank. This has been fixed. (393071)
- When you opened an existing search expression in the Build a Search Query dialog box, any "start:" and "end:" filters would not appear in the query field at the bottom of the dialog box. This has been fixed. (397211)
- The Build a Search Query dialog box would sometimes use ";" as a delimiter between search expressions, while at other times it would use "&". This has been fixed so now the dialog box consistently uses "&" to separate search expressions. (393072)
- When you used the Build a Search Query dialog box, the system always added a delimiter after the last expression in the search query. This has been fixed so the system no longer adds a delimiter at the end of the search query. (393074)
-
Performance issues related to the Sitecore.ContentSearch API
- When indexing media items, the system did not close the MediaStream objects that were used when indexing the media files. This caused a large number of open user connections to the database server and caused slow reindexing. It could also lead to timeout exceptions on the website. These issues have been fixed. (394726)
- When indexing media items, the system would always try to index the content of all media files, even images and other file types that did not contain indexable text. This could cause a significant performance overhead when rebuilding the search index. This has been fixed so that now the system only indexes a number of specific file types, which can be configured. (392253)
- When parallel indexing was enabled, the system would sometimes create a very large number of indexing threads during index rebuilds. This could lead to reduced performance of the system and also SQL timeouts. This has been fixed so the system now uses the ContentSearch.ParallelIndexingCoreLimit setting to limit the number of threads. (394700)
-
Issues related to Sitecore.ContentSearch index rebuilding strategies
- When using the onPublishEndAsync indexing strategy in multi-instance setups, the search index would occasionally not be updated correctly on all other instances after publishing new content. This sometimes happened due to a race condition related to processing the event queue, but could also occur because of an issue with how the event queue was polled if there was a time difference between the CMS server and the SQL Server instance. (394319, 395295, 395960, 377584)
- When using the onPublishEndAsync indexing strategy, the search index would sometimes still contain documents related to an item after you deleted the item. This has been fixed so all data for an item is removed from the search index when you delete an item. (398604)
- When using the SwitchOnRebuildLuceneIndex class, the class would sometimes rebuild the index in the primary index folder (the index folder used for querying) instead of a secondary folder. This has been fixed. (396132, 393152)
-
Sitecore.ContentSearch API
- When parallel indexing was enabled, index rebuild operations would occasionally cause the ASP.NET worker process to terminate and restart, typically with a shutdown message stating "CONFIG change," or "Change Notification for critical directories," or "Overwhelming Change Notification in App_Code." This happened because the reindexing of media files created and deleted a large number of files in the /temp directory. This has been fixed by changing the reindexing logic to create and delete such temporary files outside the web root, by default in a folder under the data folder named mediaIndexing. (392542)
- When using the Indexing Manager to rebuild search indexes, the dialog box would sometimes not switch to the final step after all indexes had been rebuilt, thereby giving the impression that the indexes were still being rebuilt. This has been fixed. (395099)
- The "site" field in the search index was not populated correctly. This has been fixed. You will need to rebuild your search index to have the site field updated for all existing content. (393160)
- If you uncommented the IncludeTemplate section for a search index and specified one or more template GUIDs, a RequiredObjectIsNullException error message would appear when the system tried to access the index. This has been fixed so now specifying templates to include in the search index works correctly. (389569)
- If you specified an invalid GUID in the ExcludeTemplate section for a search index, an exception would be thrown with a message that referred to "Field ID." This has been fixed so now the error message refers to "Template ID." (393680)
- Changing the storageType or indexType attribute on the configuration node of a computed index field did not have any effect. This has been fixed so now these attributes are looked up in the <fieldMap> section, as for any other index field, and the attributes have been removed from the configuration nodes for the computed fields. (390518)
- The configuration of the "_content" computed field was ignored. This has been fixed so the configuration of the field is now looked up in the fieldMap. Changing the configuration of this system field is not recommended, because it can lead to negative side effects. (390246)
- When configuring a custom index field, the "multivalued" attribute was not taken into account. This would cause these custom fields to only index the first GUID of a pipe-separated list of GUIDs. This also applied to the default "__semantics" field if the configuration node in the config file was uncommented. These issues have been fixed. (393763, 394890)
- Searching for a phrase in an index field did not return any search results if the indexType for the field had been set to UN_TOKENIZED or NO_NORMS. This has been fixed by making the query mapper respect the indexType and use a KeywordAnalyzer. (394841)
- If a pipeline processor in the <indexing.filterIndex.inbound> pipeline set args.IsExcluded to true, index rebuilding would fail with a NullReferenceException error. This has been fixed. (395286)
-
Sitecore.ContentSearch Solr provider
- The SolrBatchUpdateContext class was not thread safe. A race condition could cause an error to occur after which the system would stop updating the search indexes until the ASP.NET worker process was restarted. This would only occur in very rare cases. This has been fixed. (396565)
- The Solr provider did not apply boosting of index fields correctly for boost factors specified in the index configuration. This has been fixed. Solr does not support setting an index-time boost factor on fields that are unindexed or where norms are omitted and will throw an error during indexing if you specify a boost factor for such fields, for example fields that have their returnType set to "string". (395736, 395742)
-
Issues with the Multilist with Search and Treelist with Search field types
- When you selected an item with one or more Multilist with Search or Treelist with Search fields, the list on the left would sometimes not display any items until you clicked "Refresh" or searched for a text. This has been fixed. (392505, 388289, 392327)
- When you clicked the "Refresh" button, the list on the left of Multilist with Search and Treelist with Search fields would sometimes display items that fell outside the current filter. This could happen if one of the filters was a "must not" logic to exclude items, for example "-template:<TemplateID>". This has been fixed. (397995)
- Parameters, such as the StartSearchLocation parameter, in the Source field of a Multilist with Search or Treelist with Search field were sometimes ignored if the Source field did not specify a Filter parameter. This has been fixed. (388187)
- If you specified certain parameters in the Source field of a Multilist with Search or Treelist with Search field, these parameters would be ignored. This applied to the TemplateFilter, FullTextQuery, Language, and SortField parameters. This has been fixed. (388073)
- If you specified an invalid value for the StartSearchLocation or PageSize parameters in the Source field of a Multilist with Search or Treelist with Search field, a FormatException or an ArgumentOutOfRangeException error would occur. This has been fixed so invalid values are now ignored when rendering the field, and instead a warning will be written to the log file to help with troubleshooting. (388429, 397983)
- If you specified a Filter parameter without specifying a StartSearchLocation parameter, an ArgumentNotNull error would appear. This has been fixed so the system now uses the root item as the start item in these cases. (388429)
- If you specified a Filter parameter without specifying a specific index field as part of the filter, an IndexOutOfRangeException error would occur. This has been fixed so the system now filters by the specified text in the _content field in these cases. (394071)
- If you specified a Filter parameter that contained a wildcard, the filter would not be applied correctly, which could lead to an incorrect number of items appearing in the on the left of Multilist with Search or Treelist with Search fields. This has been fixed so the system now applies filters with wildcards correctly. (394071)
- If you switched to the core database and searched for text in a Multilist with Search or Treelist with Search field, the search would sometimes be performed against the index for the master database. This has been fixed. (388869)
- [IE] When you searched for words with non-English characters, such as "åäø", in a Multilist with Search or Treelist with Search field, the system did not return any search results. This has been fixed. (396195)
-
Content tagging
- The list on the left of the Semantics field would sometimes not display any tags until you clicked "Refresh" or searched for a tag. This has been fixed. (392327)
-
/sitecore/admin/FillDB.html
- The /sitecore/admin/FillDB.html page is now disabled by default. The page can be enabled by changing the value of a variable in the ASPX file, thereby ensuring that only people who have access to modify files on the server can enable the page. (393528)
Note: This fix has been reworked in the 7.2 Initial Release. The page can now be enabled using a setting in the Sitecore.Buckets.config file, allowing developers to create an include file in their dev environment that enables this page (ref. no. 399147). [Added March 11, 2014]
- The /sitecore/admin/FillDB.html page is now disabled by default. The page can be enabled by changing the value of a variable in the ASPX file, thereby ensuring that only people who have access to modify files on the server can enable the page. (393528)
-
Publishing
- In multi-instance setups, the system would sometimes publish old versions of changed items. For example, this could happen when you used workflows that automatically published approved items. The problem was caused by a race condition between the publish operation and cache invalidation for the master database. This has been fixed by introducing a new processor in the <publish> pipeline that ensures that remote events are raised before the publish queue is processed. (396523)
-
Security applications
- In the Edit User dialog box, the Profile tab displayed a "Tips Enabled" field. This field was not in use and has been removed. (389100)
-
Renderings and layouts
- When you selected the "Search for Content" tab in the "Select the Associated Content" dialog box and performed a search, the system would return items from the entire content tree, even if a data source was specified for the associated rendering or template. This has been fixed so this tab now respects the data source. (394928)
-
Using the Sitecore clients with out-of-process session state modes
- When you tried to restore or delete an item in the Recycle Bin, a NullReferenceException would sometimes appear when the system was configured to use out-of-process session state modes. This has been fixed. (386319)
- The PipelineArgs class did not serialize and deserialize the values in the CustomData dictionary. This has been fixed. (386319)
- A number of classes in the Sitecore.Kernel, Sitecore.Client, Sitecore.Buckets, and Sitecore.ContentSearch.Client assemblies were not marked [Serializable]. This has been fixed to improve the experimental support for using the Sitecore clients with SqlServer, StateServer, and other out-of-process session state modes. (394223, 390991, 307892, 326804, 326816, 326835, 355008 , 394226, 394788)
-
Package Installation
- When you installed a Sitecore package that contained a post-step, an unhandled .NET Framework exception would sometimes occur on the final page of the Installation Wizard, and the Windows Event Log would contain an entry for ".NET RunTime" with "Exception Info: Lucene.Net.Index.MergePolicy+MergeException" as part of the message. This has been fixed by stopping indexing while the post-step executes. (395499, 393242)
- When you installed a Sitecore package that contained a post-step, the system did not raise events before and after the post-step was executed. This has been fixed. The system now raises a "packageinstall:poststep:starting" event before the post-step is executed and a "packageinstall:poststep:ended" event after the post-step has completed. These events are not present in the web.config file but can be added manually if you need to subscribe to them. (397590)
-
Miscellaneous
- The BucketConfiguration.EnableSearchTips setting has been removed from the Sitecore.Buckets.config file. The setting was not in use. (391108)
September 23, 2013
Released Sitecore CMS and DMS 7.0 rev. 130918 (7.0 Update-2).
Note : This is a product Update. Sitecore recommends that you upgrade to this release if the fixes included in this release meet the specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
For instructions on how to download and install this release, please visit the appropriate Sitecore CMS 7 downloads page.
Highlights
The main highlight of this update is:
- A large number of issues relating to Item Buckets and Sitecore.ContentSearch have been addressed.
Improvements
- The BucketAuthorizationProvider class has been made public (instead of internal) to make it possible to override the class. (393954)
- To make it easier to configure search types (which are located under /sitecore/system/settings/Buckets/Search Types), the Client Side Hook field has been changed from a text field to a drop-down list box that contain all the available options for client-side hooks. (384409)
- In the Saved Search template standard values, the Never Publish checkbox is now selected by default, because saved searches do not need to be published. (386873)
Issues resolved
-
Potential security vulnerabilities
- In certain cases, Search tabs in the Sitecore clients would execute JavaScript entered into search expressions. (384848)
-
Executive Insight Dashboard
- The Executive Insight Dashboard no longer displays visits that are classified as coming from "My Company." (370764, 394023)
- The underlying views in the Analytics database have been modified to filter by VisitorClassification < 600, which excludes My Company visits as well as visits classified as robots.
- As a result of this change, you cannot directly compare newly generated charts with data that you have previously exported from the Dashboard. This also applies to screenshots.
- The Executive Insight Dashboard no longer displays visits that are classified as coming from "My Company." (370764, 394023)
-
Content Editor
- If you had opened one or more items in a tab from a search result and modified these items without saving your changes, when you then selected a different item in the content tree, Sitecore did not display the "Do you want to save changes to the item?" dialog box. This has been fixed. (383346)
- When you used drag-and-drop to move an item bucket to a different location in the content tree, an empty folder structure was automatically created below the destination item. This has been fixed. (388504)
- When you inserted a branch that created a tree of items, one of the created children items would be selected in the Content Editor. This has been fixed so now the parent item is selected in the Content Editor. (391677)
- When you copied a tree of items using "Copy To," the last item created would be selected in the Content Editor. This has been fixed so now the top node of the created tree is selected in the Content Editor. (382903)
- When you copied a bucketable item into a bucket, the parent item was opened in the Content tab instead of the copied item. This has been fixed. (382544, 393734)
- When you used "Copy To" or "Move To" to add items to an item bucket, the system would sometimes expand the first level of hidden folders below the item bucket. This has been fixed. (393983)
- When you added items to a bucket, the system did not always display a progress dialog box. For example, this was the case when you pasted items into a bucket. This has been fixed. (393991)
- In the Insert Options dialog box, the frame around the content tree did not always have the correct height. This cosmetic issue has been fixed(386888)
-
Page Editor
- In the Page Editor, the "Navigate to item" functionality from the ribbon did not work if the site used a custom RootPath setting. Instead of opening the selected item, a page would appear with the following error message: "The requested document was not found." This has been fixed. (387338)
-
Item buckets
- The "Items Per Page" field has been removed from the "Item Buckets Settings" item. To configure the number of search results per page, use the BucketConfiguration.DefaultNumberOfResultsPerPage setting in the Sitecore.Buckets.config file. (385401)
- When you copied, moved, or cloned an unbucketable item and selected a bucket as the target item, the item would be copied/moved into the hidden folder structure inside the bucket. This has been fixed. (382604)
- When you copied an item structure and selected an item bucket as the destination, the copies were still organized in the same item structure inside the item bucket. This has been fixed so now each copied item is stored as unstructured content inside the item bucket. (382547)
- After you reverted an item bucket to a normal item structure, some of the items that were contained in the bucket would sometimes not appear in the reverted item structure. This has been fixed. (393952)
- After you reverted an item bucket to a normal item structure, the item would appear as if it was still a bucket. This also applied when you reverted a serialized item structure. This has now been fixed so that the Content Editor ribbon and Quick Action bar are refreshed when item buckets are reverted to items. (381330, 384728, 378731, 389166, 394028)
-
Item bucket events
- The Sitecore.ContentSearch.config file defined four events with an "index:" prefix. Because these events were not used by the system, they have been removed. Instead, you should use the corresponding events with the "indexing:" prefix. (382663)
- When you converted an item to a bucket or reverted a bucket, the "item:bucketing:ending" and "item:unbucketing:ending" events were not raised. This has been fixed. (382663)
- The system only raised item bucket events, such as "item:bucketing:moving" when you performed the associated action from the UI. This has been fixed so now these events are also raised when you use the BucketManager API to perform actions related to item buckets. (382619)
- The system would sometimes raise item bucket events, such as "item:bucketing:moving", for unbucketable items. This has been fixed so item bucket events are only raised for bucketable items. For unbucketable items, only the standard Sitecore events are raised, even when the unbucketable items are located as descendants of an item bucket. (382619, 394106)
- If an event handler that subscribed to the "item:bucketing:adding" event cancelled the event, an empty folder structure would appear in the content tree. This has been fixed so now the empty folder structure is deleted if the event is cancelled. (382619)
- If an event handler that subscribed to the "item:bucketing:cloning" event cancelled the event, the system would still raise the "item:bucketing:cloned" event. This has been fixed. (394192)
- When you copied an item into a bucket, even if you used copy/paste, the "item:bucketing:copying" and "item:bucketing:copied" events were not raised. This has been fixed. (382663, 389919)
-
Search tabs in the Sitecore clients
- When you used the keyboard shortcut CTRL+SHIFT+S, sometimes the system did not open a new search tab. This has been fixed. (385979)
- When you searched for a value in a specific field, such as "title:news" on the Search tab, the first time you clicked the Search button, or if you switched to another view immediately after entering the search expression, the system would sometimes return incorrect search results (typically zero results). This has been fixed. (392445)
- For consistency with other filters, the "end:" and "start:" date filters are now added to the search expression using a "should" condition instead of a "must" condition. (393354)
- When the system was configured to use a remote instance as a dedicated query server to execute search queries, you could encounter a NullReferenceException error when clicking a search result. This could happen if, for example, the content management server and the query server were using different databases that were not in sync. This has been fixed. (383543)
- When a media folder was displayed in a search result and you clicked the "Insert Upload File" quick action, nothing happened. This has been fixed so now the Upload a File dialog box opens as expected. (388291)
- If you enabled the "Is Displayed in Search Results" on a template field, certain field types would not be displayed correctly in the search results. This has been fixed. (383551)
- When you used the Build Query dialog box to edit an existing search query that used a "should" condition, the search query would be changed to use a "must" condition, even if you had not made any changes. This has been fixed. (393070)
- When a default bucket query was defined on an item using a "must have" or "must not have" condition for the first filter in the search query, the filter would appear without an indication of "must have" or "must not have" in the search field on the item. This has been fixed. (392031)
- When a default bucket query was defined for an item, the system would ignore filters in the query, such as filtering by language. This has been fixed. (391331)
- When you clicked a column heading in the Table view, the sort order of the search results did not change. In certain cases when using the Solr provider, no search results would be displayed. This has been fixed. (390863, 393316)
- When you entered a "sort:" expression in the search field, the search would sometimes fail with an error and no search results would be displayed. This has been fixed. (391775)
- When the BucketConfiguration.SecuredItems setting was set to "blur," in certain scenarios, the system would hide items that you did not have read permissions for instead of displaying them blurred. This has been fixed. (382115, 393420)
- [IE] When you tried to open a new search tab by clicking the small tab with a magnifying glass icon, nothing happened. This has been fixed. (386702, 390538)
-
Issues
related to
search operations on Search tabs in the Sitecore clients
- When you executed the "Delete Results" search operation, instead of being moved to the Recycle Bin, the items were permanently deleted. This has been fixed. (383134)
- When you executed the Apply Profile Score search operation, the selected profile cards were only assigned to the item that you had selected in the content tree. This has been fixed so now the profile cards are assigned to all the items in the search result. (383281)
Note: This issue was only partially fixed in 7.0 U-2. The selected profile cards were still assigned to the current item, in addition to the search results. This problem has been fixed in 7.0 Update-3 (388880). [Added December 3, 2013] - An UnauthorizedAccessException error would appear when you tried to execute the "Apply Campaigns Goals Events" search operation. This has been fixed. (386568, 391580)
- The "Apply Campaigns Goals Events" search operation has been renamed to "Apply Campaigns Events," because the operation does not allow you to apply goals to items. (381889, 381847)
- If you executed the Publish Items search operation, you would not be informed if you did not have permissions to publish one or more items in the search result. (388939)
- When you tried to use the "Move Results To" search operation to move all items from one bucket to another bucket, the operation would fail with a NullReferenceException error. (388510)
- When you executed certain search operations ("Delete Results," "Search and Replace," and "Add Tag") and clicked "Show messages" in the progress dialog box, no messages were displayed. This has been fixed. (383134)
- When you executed certain search operations ("Copy Results To," "Move Results To," and "Clone Results To"), the system did not display a progress dialog box. This has been fixed. (393991)
- After you executed a search operation, the "More Search Options" drop-down menu did not close. This has been fixed. (384627)
-
Cosmetic issues on Search tabs in the Sitecore clients
- A cosmetic issue has been fixed where the convert to bucket dialog box displayed a broken image icon. (386050)
- A cosmetic issue has been fixed where the icon for the "Updated By" filter disappeared after you clicked the icon to switch between must/must not/should. (393590)
- A cosmetic issue has been fixed in the Build a Search Query dialog box where the icon for "Sort by" filters was not displayed when modifying a search query. (393592)
- [IE] A cosmetic issue in Internet Explorer has been fixed where the search field would not always be rendered correctly after adding or removing search filters, or after clearing the search field. (386374, 393577)
-
Sitecore.ContentSearch API
- The ASP.NET worker process would crash if an exception occurred in the IntervalAsynchronousStrategy class. For example, this could happen when the system tried to index an item for which the item:read permission was denied for the Everyone role or when trying to index an item that had just been deleted. This has been fixed. (388087, 388097, 388090)
- When you used the API to execute a Linq expression with an OrderBy() statement, the returned search results were sometimes not sorted according to the specified selector. This has been fixed. (391775)
- After you modified an item with clones, the search index was not updated correctly. This has been fixed so now when you make changes to an item, clones of the item are also reindexed to reflect the changes to the fields that inherit their value from the original item. (383917)
- After you copied a tree of items using "Copy To," the newly created items did not appear when searching for them. This happened because the system only indexed the top-level item of the newly created item structure. This has now been fixed so all the descendants are indexed after copying a tree of items. (380876)
- The Sitecore.ContentSearch.config file contained an unnecessary handler of type "Sitecore.ContentSearch.Maintenance.IndexDependentHtmlCacheManager" for the "indexing:end:remote" event. The handler has been removed to avoid unnecessary cache clearings. Note, however, that this handler has not been removed from the "indexing:end" event. (383162)
-
Content tagging
- After you created a new tag in the tag repository, the Search tab would sometimes disappear, preventing you from searching for tags or performing operations on them. This has been fixed. (383445)
-
Content faceting
- If you filtered a search result using one or more facets, the system would sometimes change the other filters in the query from using a "should" condition to a "must" condition, without indicating this change in the UI. This has been fixed so facets no longer change the way other search filters are applied. (393359, 394775) [Updated December 3, 2013]
- If you filtered a search result using the "Templates" facet and then cleared the template facet again, the system would sometimes display a different number of search results than expected. This has been fixed. (383303)
- Filtering by facets on date fields did not work correctly when you selected the "older" facet. The actual number of search results returned was much larger than the number (the expected results) next to the "older" facet indicated. This has been fixed. (388213, 393815)
- If you filtered a search result using a facet, the system would sometimes display a GUID in the Current Filters box instead of the item name, even when the BucketConfiguration.ResolveFacetValueToFriendlyName setting was set to true. This has been fixed. (388506) [Added December 3, 2013]
-
/sitecore/admin/FillDB.html
- After generating items using the /sitecore/admin/FillDB.html page, the items would not show up in the content tree. This happened because the parent folders of the items were not saved correctly to the database. This has been fixed. (388243)
-
Publishing
- When you published a language version of an item, the system was supposed to publish the language definition item if it was not already published. This did not happen if the the EnableEventQueues setting was set to true. This has been fixed. (386169)
-
Security applications
- When you edited a user profile that contained fields that allowed you to search for items, the field controls and related dialog boxes would search in the master database instead of the core database. This has been fixed. (386005)
- The "Create Bucket" and "Revert Bucket" access permissions were displayed after the "*" access permission in the dialog box for assigning and modifying security assignments. This has been fixed so the "*" permission appears last in the list. (384904)
-
Security assignments
- The Indexing Tools group on the Developer tab was visible to all members of the Sitecore Client Authoring role. This has been fixed so the group is now only visible to members of the Sitecore Client Developing and Sitecore Client Maintaining roles. (382777)
- The security assignments for the Buckets group on the Configure tab of the Content Editor have been changed. Assignments for the non-existing "sitecore\Bucket Management" role have been removed, and read permissions for "sitecore\*" are no longer denied. (382891)
-
Sitecore Desktop
- When you logged out of the Sitecore Desktop after closing a Content Editor window, a JavaScript error would sometimes appear with the following message: "Unexpected call to method or property access." This has been fixed. (390958)
-
Renderings and layouts
- If you specified a search-based data source for a rendering using the Build Query dialog box and saved the changes, an ArgumentNullException error would be written to the Sitecore log file with the following message: "Value cannot be null." This has been fixed. (394141)
- If you selected a specific item as a data source for a rendering using the Build Query dialog box, the Data Source field would display the ID of the item. This has been fixed so now the Data Source field displays the path instead. (389581)
-
Link database
- When you saved an item, you would get a warning about broken links if the data source for one or more renderings contained a relative path. This has been fixed. Note that by default, Sitecore does not support relative data sources for renderings. This issue occurred for customers who had hooked into the "resolveRenderingDatasource" pipeline to support such data sources. (382974)
-
Installation Wizard
- When you installed a Sitecore package, the installation wizard would sometimes fail with an ArgumentNullException error. This could happen if you used the IntervalAsynchronousStrategy class and the asynchronous index rebuilding started during the package installation. This has been fixed so the package installation no longer fails with an error. (391854)
-
Localization
- When you performed a search on the Search tab in a Sitecore client or you synchronized an item bucket, the system wrote a localized message to the log file. This has been fixed so these messages in log files are always in English. (383435)
- The text for date facets could not be localized. This has been fixed. (390165)
- The tab title of the Search tab in the Content Editor could not be localized. This has been fixed. (386160)
- Some of the menu options in the context menu for the Search tab could not be localized. This has been fixed. (390156)
- The name of languages and quick actions on Search tabs could not be localized. This has been fixed. (386281, 386216)
-
Miscellaneous
- The Log Viewer application did not allow you to see the new Search and Crawling logs that are available in CMS 7. This has been fixed. (386889)
- In CMS 7, the system did not replace field values correctly when you used a custom MasterVariablesReplacer class. This has been fixed. (384900)
- The item bucket "Search Type Item" template was not used by the system and has therefore been removed. (382931)
- A number of phrases in the UI have been revised for clarity and consistency. (383276, 391341)
-
The clean installation
- The clean master database contained a Test Tag item in the workbox. This has been fixed. (387191)
- Some items in the Sitecore databases were not present in the Sitecore.ContentSearch indexes that were shipped with the clean installation. This has been fixed. (389917)
- The comment for the AutoBucket event handler in the Sitecore.Buckets.config file has been rewritten for increased clarity. (383356)
- For consistency, a number of nodes in the Sitecore.ContentSearch.Lucene.DefaultIndexConfiguration.config file have been changed so that the first letter in the node name is lowercase instead of uppercase. This change does not need to be applied to upgraded solutions, because the system is not case-sensitive when reading the configuration.(384919)
August 13, 2013
Released Sitecore CMS and DMS 7.0 rev. 130810 (7.0 Update-1).
Note : This is a product Update. Sitecore recommends that you upgrade to this release if the fixes included in this release meet specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
Please visit the appropriate Sitecore CMS 7 downloads page for instructions describing how to download and install this release.
Highlights
The main highlights in this update are:
- 7.0 Update-1 includes all the fixes from 6.6 Update-6.
- Oracle is now supported for CMS 7.0.
- Data source improvements, showing the path in data source fields even when it's stored as a GUID.
- Various improvements and issues addressed related to Item Buckets and Sitecore.ContentSearch.
Note: This update contains a number of breaking changes in the Sitecore.ContentSearch namespaces. Please review the breaking changes before you upgrade to this update.
System requirements
- 7.0 Update-1 introduces Oracle support for CMS and DMS 7.0.
Improvements
- This release incorporates all changes made for 6.6 Update-6. For additional information about these changes, please refer to the release notes:
- Data source improvements
- The data source field on rendering parameters now displays the data source as a path, even when the field value is stored as a GUID. (384031)
- Layouts and renderings
- To make it easier to get the data source for a sublayout from code-behind, the data source is now transferred to the sublayout control in a "sc_datasource" attribute. (320768)
- To get the data source from code, simply refer to this.Attributes["sc_datasource"];
- To make it easier to get the data source for a sublayout from code-behind, the data source is now transferred to the sublayout control in a "sc_datasource" attribute. (320768)
- Sitecore.ContentSearch API
- A new crawler named SitecoreItemCrawler has been introduced. The new crawler works for both the Lucene and the Solr provider, thereby removing the need to specify separate crawler types in config files depending on the provider used. (386751)
- It is now possible to use the InMemoryLuceneIndex class for indexes defined in configuration files. In the initial 7.0 release, it was only possible to use the class from indexes defined and maintained in code. (384391, 382082)
- DocumentMapper improvements
- When using the DocumentMapper, a new [IgnoreIndexField] attribute can be used to mark properties in your custom classes that should not be mapped to fields in search results. (384402)
- When using the DocumentMapper, it is now possible to apply a predefined query. The query is automatically applied to the queryable when GetQueryable<T> is called and class T is marked with one or more [PredefinedQuery] attributes. (384408)
- Usage: [PredefinedQuery(<FieldName>, <ComparisonType>, <Value>[, <Type>])]
- A new DocumentSize commit policy commits documents to the index once the document has reached a certain size. This can for example be useful with media/pdf documents with a lot of text content. (386777)
- For now, the new commit policy is only available for Solr. It can be used in the following way:<commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor,
Sitecore.ContentSearch">
<policies hint="list:AddCommitPolicy">
<policy type="Sitecore.ContentSearch.SolrProvider.CommitPolicies.SolrDocumentSizeCommitPolicy, Sitecore.ContentSearch.SolrProvider">
<param desc="maximumSizeBeforeCommit">250000
</param>
</policy>
</policies>
</commitPolicyExecutor>
- For now, the new commit policy is only available for Solr. It can be used in the following way:
- Solr support
- The Solr provider now features a SwitchOnRebuildSolrSearchIndex class, similar to the SwitchOnRebuildLuceneIndex in the Lucene provider. (385827)
- For high availability of indexes, this class makes it possible configure the system to rebuild indexes in a separate folder and switch the active index when done, thereby ensuring that the solution can continue to query the search index while the index is being rebuilt.
- The Solr provider now features a SwitchOnRebuildSolrSearchIndex class, similar to the SwitchOnRebuildLuceneIndex in the Lucene provider. (385827)
- The following computed fields have been added to the default index configuration:
- parsedupdatedby: Is used to index the value of the "__Updated By" field (without "\"), similar to the existing parsedcreatedby computed field.
- urllink: Stores the URL to the item (or media item) in the index, as returned by the LinkManager.GetItemUrl() and MediaManager.GetMediaUrl() at the time of indexing. (384393)
- isbucket_text: Indicates if the item is a bucket. The value is indexed as a string, rather than a boolean. ("1" for true, "0" for false). (388978)
- _template: Stores the ID of the item's template. This field is required to have queries for template work correctly.
- Setup.exe installation program
- The setup.exe now allows you to install Sitecore on a Windows 8 Basic edition. (384389)
- The setup.exe has been updated with a new EULA, including a note that the license agreement displayed by the setup.exe is not intended to in any way modify or replace your existing agreement if you are an existing or new licensee with a valid agreement to use the Sitecore Software. (390048, 390176)
- /sitecore/admin/LinqScratchPad.html
- Developers are now able to load a code snippet from a URL into the LinqScratchPad, either by typing the URL into the URL text field and clicking "Fetch", or by using a query string parameter named "snippetCode". (390509, 390525)
Breaking changes
- Sitecore.ContentSearch API:
- The IIndexFieldNameFormatterAttribute interface and the IndexFieldAttribute implementation have been moved from the Sitecore.ContentSearch.dll to the Sitecore.ContentSearch.Linq.dll assembly.
- The PredicateBuilder class has been moved from the Sitecore.ContentSearch.dll to the Sitecore.ContentSearch.Linq.dll assembly.
- The IProviderCrawler interface has been changed, including all Sitecore classes that implement this interface:
- All existing methods in the interface now take an additional, optional parameter of type IndexOptions.
- The interface has been extended with 3 new methods:
- void StopIndexing()
- void PauseIndexing()
- void ResumeIndexing()
- The ISearchIndex interface has been changed, including all Sitecore classes that implement this interface:
- The property PropertyStore has been made read/write.
- The property FieldNameTranslator has been made read/write.
- A number of new methods have been added:
- void Rebuild(IndexingOptions indexingOptions)
- void Refresh(IIndexable indexableStartingPoint, IndexingOptions indexingOptions)
- void Reset()
- void StopIndexing()
- void PauseIndexing()
- void ResumeIndexing()
- A number of overloads have been added for existing methods:
- void Update(IIndexableUniqueId indexableUniqueId, IndexingOptions indexingOptions)
- void Update(IEnumerable<IIndexableUniqueId> indexableUniqueIds, IndexingOptions indexingOptions)
- void Delete(IIndexableId indexableId, IndexingOptions indexingOptions)
- void Delete(IIndexableUniqueId indexableUniqueId, IndexingOptions indexingOptions)
- The ICommitPolicy interface has been changed, including all Sitecore classes that implement this interface:
- The interface now derives from the IClonable interface (in addition to still deriving from the IDisposable interface).
- A new parameter of type "object" has been added to the IndexModified method: void IndexModified(object document, IndexOperation operation)
- The ICommitPolicyExecutor interface has been changed, including all Sitecore classes that implement this interface:
- A new parameter of type "object" has been added to the IndexModified method: void IndexModified(object document, IndexOperation operation)
- The Committed() method no longer takes a parameter of IProviderUpdateContext.
- A new method has been added: void AddCommitPolicy(ICommitPolicy commitPolicy)
- The Initialise() method has been removed. Instead, the interface now derives from the ISearchIndexInitializable interface which defines an Initialize() method.
- The IProviderUpdateContext interface has been changed, including all Sitecore classes that implement this interface:
- The CommitPolicy property has been removed.
- A new property CommitPolicyExecutor (of type ICommitPolicyExecutor) has been introduced.
- The ICompositeAnalyzer interface has been changed, including all Sitecore classes that implement this interface:
- The GetAnalyzersByExecutionContext method has been changed to take an IEnumerable<IExecutionContext> object as parameter instead of an IExecutionContext object.
- The IBucketClientService interface has been extended with a new List<string> GetUpdaters(string tagChars) method.
- The abstract class AbstractFieldNameTranslator has been changed, as well as the LuceneFieldNameTranslator and SolrFieldNameTranslator implementations:
- A new abstract method has been introduced: public abstract Dictionary<string, List<string>> MapDocumentFieldsToType(Type type, MappingTargetType target, IEnumerable<string> documentFieldNames);
- The following method has been removed: public virtual Dictionary<string, List<string>> MapDocumentFieldsToType(Type type, IEnumerable<string> documentFieldNames)
- The LuceneIndex, InMemoryLuceneIndex, SwitchOnRebuildLuceneIndex, and SolrSearchIndex classes have been changed:
- The protected fields commitPolicyType and commitPolicyExecutorType have been removed.
- The public methods SetCommitPolicy and SetCommitPolicyExecutor have been removed.
- In the SolrSearchIndex class, the public property IEnumerable<IProviderCrawler> Crawlers has been replaced with the protected property List<IProviderCrawler> Crawlers from the new AbstractSearchIndex base class.
- The CreateAndReturnDateFolderDestination method has been renamed to CreateAndReturnBucketFolderDestination. The old method has been deprecated. This change has been made to reflect customers can specify an alternative implementation for how the hidden folder structures below Buckets are organized. (384394)
- Two type converter classes have been moved from the Lucene provider to the core Sitecore.ContentSearch.Converters namespace (in addition to being renamed, as mentioned below). This allows the converters to be used by the Solr provider as well. The new class names are (386548)
- Sitecore.ContentSearch.Converters.IndexFieldDateTimeOffsetValueConverter
- Sitecore.ContentSearch.Converters.IndexFieldTimeSpanValueConverter
- For consistency, a number of type converter classes have been renamed from "Convertor" to "Converter". The old class names have been deprecated, but are for now kept for backwards-compatibility. The new class names are: (386548)
- IndexFieldItemUriValueConverter
- IndexFieldDateTimeOffsetValueConverter
- IndexFieldSitecoreItemUniqueIDValueConverter
- IndexFieldTimeSpanValueConverter
- The Solr provider now stores the unique identifier for a record in the index in a field named "_uniqueid" instead of "_id" to avoid potential problems with the uniqueness of the record key. (386548)
- This requires the Solr schema to be regenerated or updated and all Solr search indexes to be rebuilt if you upgrade from the 7.0 intial release, as described in the upgrade instructions.
- Sitecore.ContentSearch config files:
- The child nodes below the <fieldTypes hint="raw.AddFieldByFieldTypeName"> node have been renamed from <fieldType ...> to <field …> in the index configuration files. (384406)
- The configuration nodes related to commitPolicy and commitPolicyExecutor have been changed in all of the index configuration files to reflect the changes made to the underlying classes. (386777)
Deprecated classes, methods, and properties
- Sitecore.ContentSearch API:
- The DefaultCrawler in the Lucene provider and the SolrCrawler in the Solr provider have both been deprecated in favor of the new Sitecore.ContentSearch.SitecoreItemCrawler. (386751)
- The Aggregate property of the FacetValue class has been renamed to AggregateCount. The old property has been deprecated, but continues to work for now. (386875)
- The constructors of the LuceneUpdateContext, SolrUpdateContext, and SolrBatchUpdateContex classes are no longer used and have been deprecated.
- The ResetIndex() method of the SolrSearchIndex class has been deprecated in favor of a new method named Reset() method.
- The GetIndexJobOptions of the IndexCustodian class is considered for internal use only and has been deprecated. It will be made private in a later release. (384396)
Important changes
- In the 7.0 initial release, the /sitecore/Templates item was not marked hidden. It is now marked hidden again, like it was in previous versions. (386746, 386694)
- The 7.0 initial release distributed the ICSharpCode.SharpZipLib DLL in the /bin folder. This DLL has been removed again, since it's covered by a GPL license.
- As in previous releases, customers can still download the DLL from ic#code and install the DLL into the /bin folder to enable compression support in Lucene. No configuration is needed.
Issues resolved
- Content Editor
- In the 7.0 initial release, the default security permissions for the Indexing Tool group on the Developer tab gave members of the Sitecore Client Authoring role access to see this group. As a side-effect, the Developer tab would be available to such users (but only with the Indexing Tool group visible). (390676)
- The default security permissions have been changed to make the Indexing Tool group available to members of the Sitecore Client Maintaining role. (391086)
- Also, we have removed permissions to two of the buttons in the group which granted permissions for the Sitecore Client Translating role, although the buttons were not visible to the role because it didn’t have permissions to the parent item. (391086)
- In the 7.0 initial release, the default security permissions for the Indexing Tool group on the Developer tab gave members of the Sitecore Client Authoring role access to see this group. As a side-effect, the Developer tab would be available to such users (but only with the Indexing Tool group visible). (390676)
- Search tabs in the Content Editor
- The "Add Tag" search operation could lead to the Home item being added as a tag to the items in the search result. This could happen if the user did not select a tag in the dialog box. (389515)
- The "Bucket" facet did not work as expected, having no effect on the displayed search results. (388978)
- The "Owner" facet did not work as expected, and has been removed for now. (382195)
- Pressing CTRL + SHIFT + S when using the Content Editor did not open a new search tab. (383353)
- If a user right-clicked a search tab and selected the "Bookmark All" option in the context-menu, the following JavaScript error message would appear: "Error: 'return' statement outside of function". (388789)
- Sitecore.ContentSearch API
- The following type converters classes did not always work as expected when parsing values from the search result into C# objects: (386548)
- IndexFieldDateTimeOffsetValueConvertor (now renamed to Converter)
- IndexFieldTimeSpanValueConvertor (now renamed to Converter)
- The verbose logging functionality did not map the location of the verbose log files correctly if the dataFolder setting was set to a relative path. The system would try to write the log files to "C:\data\logs", which could cause errors to occur, since the ASP.NET process normally does not have access to write to this location. (390295)
- Solr support
- Floats were not indexed correctly. If the field value of a 'Number' field was a float, it would get indexed as 0. (386541)
- Using a comparison operator with an int in a Linq expression could cause a badly formed query to be passed to Solr, e.g. "[2000 to 0]" instead of "[2000 to *]". This applied to the following comparison operators: (386537)
- Greater than (>)
- Greater than or equal (=>)
- Less than (<)
- Less than or equal (<=)
- The Solr provider did not support all of the type converters that the Lucene provider supports. Previously, the following type converters were not supported: (386548)
- IndexFieldDateTimeOffsetValueConvertor (now renamed to Converter)
- IndexFieldSitecoreItemIDValueConverter
- IndexFieldSitecoreItemUniqueIDValueConvertor (now renamed to Converter)
- IndexFieldTimeSpanValueConvertor (now renamed to Converter)
- When using the DocumentMapper, a casting error would appear if a field name in Solr (when stripped of its extension) was identical to the name of a property mapping. The fix ensures that the property mapping takes precedence over the indexer, and the indexer value is now renamed with a "_duplicate" suffix in such situations. (386543)
- To be consistent with the Lucene provider, the Solr provider now logs the number of additions/updates/deletions on every commit. Like the Lucene provider, the Solr provider logs this information using log level "INFO". (385678)
- A typo has been fixed in the Build Solr Schema wizard. (384703)
- The following type converters classes did not always work as expected when parsing values from the search result into C# objects: (386548)
- Indexing Manager
- The "Last Updated" field in the Indexing Manager only showed the date when the index was last updated, not the time. (384407)
- Multibrowser support
- [Chrome] In the initial 7.0 release, the Browse tab in the "Insert from Template" dialog box did not show the content tree unless the dialog box was resized. (383493)
- [Chrome, Firefox] When assigning security, the "OK" and "Cancel" buttons were not visible in the "Security Settings" dialog box. (388516)
- Oracle
- When a user clicked the "Change your personal information" link in the Control Panel, the application would display an error page reporting an ArgumentNullException. (389972)
- Miscellaneous
- The Search tab in the "Transfer items to Another database" wizard has been removed. (384884)
- The Sitecore.Data.Achiving.RestoreItemCompletedEvent class has been made public to make it possible to subscribe to the event and execute code when items are restored from the archive or the recycle bin, such as updating search indexes. (387272)
- [7.0 initial release only] When installing Sitecore packages, an unhandled .NET Framework exception would sometimes occur on the final page of the Installation Wizard, and the Windows Event Log would contain an entry for ".NET RunTime" with "Exception Info: Lucene.Net.Index.MergePolicy+MergeException" as part of the message. (385983)
Note: This issue was only partially fixed in 7.0 Update-1 and could still be reproduced in certain scenarios if the package contained a post-step. This problem has been fixed in 7.0 Update-3 (395499). [Added December 3, 2013]
May 21, 2013
Released Sitecore CMS and DMS 7.0 rev. 130424 (7.0 Initial Release).
Note: This is a Feature Release. Sitecore recommends upgrading to this release when the fixes included in this release meet specific needs of your organization. If this release does not include new functionality or specific fixes that your organization requires, you may benefit by waiting until Sitecore releases a Service Pack for this series before upgrading. This is especially true in production environments.
Note: Starting with Sitecore 7.0, Sitecore will only use 2 levels in the version number (e.g. 7.0). Previous versions continue to use 3 levels in the version number (e.g. 6.6.0).
To learn more about Sitecore’s versioning system, see the Sitecore Versioning Policy page.
Important: A known issue has been identified in 6.6 Update-5 and 7.0 Initial Release which affects solutions upgraded to the CMS 7.0 Initial Release from 6.6 Update-4 or earlier 6.6 releases. Due to this issue, the upgrade instructions contain a step to execute an aspx page as part of the upgrade process. The issue does not affect clean installations of 7.0 or solutions upgraded from 6.6 Update-5 or later. Please refer to the known issue for more information.
Please visit the appropriate Sitecore CMS 7 downloads page for instructions describing how to download and install this release.
Highlights
The CMS 7.0 rev. 130424 initial release includes all the fixes from 6.6 Update-5.
The main highlights in this release are:
- Support for storage of large numbers of content items in item buckets.
- Content tagging and content faceting.
- A new Sitecore.ContentSearch namespace that contains new indexing and search APIs.
- New search screens for content authors in the Content Editor, Page Editor, and in many dialog boxes.
- Data sources improvements.
- Support for running Sitecore on Windows Server 2012 and Windows 8.
System requirements
- Sitecore clients can now run on following browsers:
- Microsoft Internet Explorer 10 is supported by CMS 7.0.
- Microsoft Internet Explorer 9 and 8 continue to be supported by CMS 7.0. Internet Explorer 8 is only supported in non-Compatibility mode.
- Microsoft Internet Explorer 7 is no longer supported, starting with CMS 7.0.
- Mozilla Firefox 17 and later is supported. Earlier versions are not supported by Mozilla at the time of the CMS 7.0 initial release, and therefore not supported by CMS 7.0.
- Google Chrome 25 and later is supported. Earlier versions are not supported by Google at the time of the CMS 7.0 initial release, and therefore not supported by CMS 7.0.
- Apple Safari 6 for Mac OS is supported. Safari 5 for Mac OS is no longer supported, starting with CMS 7.0.
- Apple Safari for Windows is no longer supported by Apple, and therefore also not supported for CMS 7.0.
- CMS 7.0 adds support for running Sitecore on Windows Server 2012 and Windows 8.
- Sitecore CMS 7.0 requires .NET framework 4.5
- CMS 7.0 does not support running Sitecore in IIS application pools that are configured to run under the .NET 3.5 or .NET 4.0 frameworks.
- The .NET 4.5 requirement leads to several other changes in system requirements:
- Visual Studio: Developers must use Visual Studio 2012 when developing for Sitecore, even if their own projects are compiled for .NET 4.0 or .NET 3.5.
- Operating systems and IIS versions
- CMS 7.0 supports Windows Server 2012, Windows Server 2008 R2, Windows Server 2008 SP2, Windows 8, Windows 7, and Windows Vista SP2+ and the associated IIS versions (IIS 7, IIS 7.5, IIS 8).
- Other operating systems and IIS versions that were supported by CMS 6.6 are no longer supported, since these operating systems are not supported by the .NET 4.5 Framework.
- Supported SQL Server versions
- Sitecore CMS and DMS 7.0 require SQL Server 2008 R2 SP1 or SQL Server 2012 or one of the corresponding SQL Server Express editions.
- CMS 7.0 does not support SQL Server 2008.
- The initial release of CMS and DMS 7.0 only supports Microsoft SQL Server.
- Oracle support for CMS and DMS 7.0 has been made available starting with 7.0 Update-1 (rev. 130810).
Upgrade considerations
- Upgrading to CMS 7.0 is currently not supported if a version of the shared source Item Buckets module is installed.
- Sitecore plans to provide tools and/or instructions for upgrading such solutions at a later date.
- Be aware that converting content items into item buckets can cause your code not to work as designed. For more information about coding and item buckets, see the Developer's Guide to Item Buckets and Search.
New and updated documentation
- New documentation released with CMS 7.0:
- Developer's Guide to Item Buckets and Search
A developer's guide to working with item buckets, search, and indexing in Sitecore 7.0. - Sitecore Search and Indexing Guide
A developer's and administrator's guide to using Sitecore search. - Sitecore Search Scaling Guide
An administrator's guide to scaling with Sitecore search and item buckets.
- Developer's Guide to Item Buckets and Search
- Existing documentation that have been updated for CMS 7.0:
- Content Author's Cookbook
- Data Definition API Cookbook
- Data Definition Reference
- Installation Guide
- Marketing Operations Cookbook
- Presentation Component API Cookbook
- Presentation Component Reference
- Reusing and Sharing Data
- Rules Engine Cookbook
- Security Administrator's Cookbook
- Serialization Guide
- Workflow Cookbook
New features
- Item Buckets - ability to store large amounts of items in Sitecore
- Item Buckets is a system that lets you store thousands of content items in one container. You can convert individual items in the content tree into item buckets that can contain any number of subitems.
- Item Buckets addresses the problem of managing large numbers of items within the content tree, retrieving them, and working with them in a speedy and efficient manner. A single repository can contain millions of content items without congesting the content tree.
- The contents of an item bucket container are stored as unstructured content. These subitems are not listed in the content tree by default and do not have a parent-child relationship with the item bucket item. You can also create hybrid structures below an item bucket with content items that are hidden in the item bucket and content items that are structured in the normal way.
- An item bucket contains a Search tab that lets you find the items that are stored in the container.
- The /App_Config/Include/Sitecore.Buckets.config file contains event definitions for a large number of events. For example, you execute event handlers after an item is added to a bucket ("item:bucketing:adding" ) or before an item is converted into a bucket ("item:bucketing:starting").
- For now, these events are only raised when performing actions in the UI. We plan to change the behavior so these events are also raised when performing actions using the API. (ref. no. 382614 will be used when the issue gets addressed in a future update).
- Be aware that converting content items into item buckets can cause your code not to work as designed. For more information about coding and item buckets, see the Developer's Guide.
- For example, the Children property and GetChildren() method will not work as expected when used on items stored in a bucket container.
- Also, it is recommended not to use the item.Axes methods due to performance considerations.
- Content tagging
- The item buckets functionality supports a semantic tagging system which allows you to tag associations on every item (although the tag system also works on items that are not stored in an item bucket). This is useful for making connections between items that are stored in an item bucket, since the parent to child relationship is removed.
- Tags can be added on an item using the Semantics field (available to content authors that have access to see Standard Fields), or you can use Search Operations > Add Tag to assign a tag to all items in the search result.
- Tags are stored in the new "Semantics" field on the standard template (in the new Tagging section) by default.
- Content faceting
- Content faceting enables content authors to quickly refine their search results by filtering on e.g. author, creation date, template, or language. Custom facets can be configured to allow content authors to filter by additional fields.
- New search screens in the Content Editor, Page Editor, and dialog boxes.
- New search screens allow content authors to search for items and media when inserting links, inserting images, selecting templates, configuring rules, etc. instead of having to browse through the content tree.
- In the Content Editor, content authors can open search tabs to search for items, and they can perform quick actions on sets of items. This functionality works for all items and is not restricted to items stored in item buckets.
- In the Page Editor, a new search icon is available next to the Save icon in the upper left-hand corner, making it easier to navigate to any item.
- New indexing APIs
- CMS 7.0 introduces a new Sitecore.ContentSearch namespace that contains new indexing and search APIs.
- The ContentSearch name has been chosen to indicate that the new APIs are designed to make it easier for developers and designers to use the search APIs to query for items and to render content on websites.
- The new APIs are, however, not limited to indexing and searching for content items. The APIs can be used to index and search for all types of items in Sitecore.
- The old Sitecore.Search API has been retained for backwards compatibility. Sitecore recommends that you use the new Sitecore.ContentSearch API for new solutions.
- The new APIs provide a more robust and much more configurable search infrastructure.
- The APIs include a lot of the functionality that previously was provided by the Advanced Database Crawler shared source module.
- For example, using stored fields you can implement controls in the presentation layer that only render data from the index and does not touch the database at all. This is especially powerful in combination with computed fields which give you full control over what way data is stored and what data is stored in the index, including formatting the data, performing calculations, and/or looking up values from other items.
- For high availability of indexes, it's possible to configure the system to rebuild indexes in a separate folder and switch the active index when done, thereby ensuring that the solution can continue to query the search index while the index is being rebuilt.
- See the "SwitchOnRebuildLuceneIndex" section in the Sitecore Search and Indexing Guide for more information.
- Indexing update strategies are configurable.
- You can configure different index update strategies for different indexes in your solution, depending on how each index is intended to be used.
- Sitecore provides several different index update strategies to choose from. The choice of index update strategy will determine how often each index is updated and what triggers an index update. The different strategies vary in how resource intensive they are in terms of both CPU and IO.
- See the Sitecore Search and Indexing Guide for more information.
- Scaling
- The system can be configured to rebuild indexes on a remote instance to reduce the CPU and IO load on content management instances and/or content delivery instances.
- The system can be configured to use a remote instance as a dedicated query server to execute search queries. This can be used to reduce the load on content management instances.
- Support for using Solr instead of Lucene for indexing and search.
- Solr support
- Sitecore supports and tests a single Solr release (currently Solr 4.1) for use with CMS 7.0, while we expect the system to work with Solr versions 4.0 and up.
- Solr is a Java-based open source enterprise search platform from the Apache Lucene project. Using Solr integration for item buckets is the same as using a file-based Lucene index but instead of storing its information in file-based Lucene indexes they are stored remotely on the Solr server. This is a particularly effective strategy in a distributed environment.
- Solr is optimized for performance and handling large numbers of documents.
- Solr features rich multi-language indexing. It has a large set of language-specific analyzers that allow more accurate processing of languages such as Japanese and Arabic.
- See the Sitecore Search Scaling Guide for information about how to configure a Solr instance and how to configure Sitecore to work with the Solr provider.
- CMS 7.0 introduces a new Sitecore.ContentSearch namespace that contains new indexing and search APIs.
-
New search APIs on top of the new indexing APIs
- CMS 7.0 provides a Linq layer to query the search indexes, and has the ability to map data from the index to properties in a class (strongly typed).
- The Sitecore DocumentMapper is an integral part of the new Content Search API that makes it easier to construct search queries and work with results as strongly typed C# objects. Developers create classes and properties that map directly to the different types of Sitecore template fields. The new classes are used to create the LINQ query expressions for the Search API and also to conveniently access field data from more complex types like dates and link fields.
- The Linq layer not only provides a powerful and flexible query syntax for developers, it also allows us to support different search providers without requiring developers to know the different query syntax for different providers.
- Sitecore provides a Linq to Lucene and a Linq to Solr provider by default.
- The Sitecore providers implement a large subset of the IQueryable interface, although some complex methods are not supported, for example Join, GroupBy, and Sum.
- See the Developer's Guide to Item Buckets and Search for more information.
- CMS 7.0 provides a Linq layer to query the search indexes, and has the ability to map data from the index to properties in a class (strongly typed).
- Field types
- 3 new fields types have been introduced that can support vast amounts of content without degrading performance:
- Multilist with Search - can populate a multilist field based on a search query. The user can filter the list even more using a search box above the field control.
- Treelist with Search - can populate a treelist field based on a search query. The user can filter the list even more using a search box above the field control.
- General Link with Search - use this field to create a link to an item that is stored in an item bucket.
- Also, two new system types named "Query Builder" and "Query Datasource" have been introduced. These field types are used internally in Sitecore.
- The Source field on template field definition items supports a new way of selecting items for the field:
- Use a "code:<class name>, <assembly name>" syntax to call code that returns the items to use for the field source. The class must inherit from the IDataSource interface and return an Item[].
- See the Developer's Guide to Item Buckets and Search for more information.
- 3 new fields types have been introduced that can support vast amounts of content without degrading performance:
- Index management
- A new Indexing Manager is available for managing the new search indexes (Control Panel > Indexing > Index Manager).
- Search indexes related to the Sitecore.Search namespace and the deprecated Sitecore.Data.Indexing namespace are still rebuilt using the Control Panel > Database > Rebuild the Search Index wizard.
- The Developer tab in the Content Editor features a new Indexing Tools group.
- The group features buttons for rebuilding a specific index, rebuilding all indexes, and a very handy option to re-index the currently selected item and its descendants.
- A new Indexing Manager is available for managing the new search indexes (Control Panel > Indexing > Index Manager).
- Improved logging for indexing and search
- The new indexing and search APIs write separate log files to the log folder with information about crawling and search operations.
- Also, you can enable verbose logging for more information. Verbose logging adds overhead and eats up disk space, so it should only be used temporarily during troubleshooting.
- Pipeline profiling
- A new profiler allows you to profile pipelines and pipeline processors. The profiler collects metrics such as number of executions, wall time, percentage of wall time, and time per execution.
- To see the profiling information, open /sitecore/admin/pipelines.html.
- Pipeline profiling is disabled by default. To enabled the feature, rename the /App_Config/Include/Sitecore.PipelineProfiling.config.disabled file to Sitecore.PipelineProfiling.config.
- To measure CPU usage during pipeline profiling, set the value of the "Pipelines.Profiling.MeasureCpuTime" setting to "true" in the Sitecore.PipelineProfiling.config file. Measuring CPU usage adds a performance overhead to the pipeline but provides additional information about the behavior of the processors.
- New tools in the /sitecore/admin folder
- /sitecore/admin/FillDB.html
- The FillDB.html page allows you to test the scalability of your new search providers or the way the indexes have been set up. You can also use this tool to test facets, new search types, new query types, and the way your indexes are cached in large content environments.
- /sitecore/admin/LinqScratchpad.html
- The LinqScratchpad.html page allows you to execute Linq expression typed into a text field for easy evaluation during development or troubleshooting.
- /sitecore/admin/Pipelines.html
- When pipeline profiling is enabled, the Pipelines.html page presents a profiling snapshot with information about all pipelines and pipeline processors.
- /sitecore/admin/RemoveBrokenLinks.html
- Allows you to remove all broken links to missing items in one or more Sitecore databases.
- /sitecore/admin/FillDB.html
- Marketing features
- Rule based boosting allows you to dynamically increase the relative importance of items in the content tree.
- Bulk profiling allows marketers to search for a set of items, then apply profile scores or apply campaigns or page events to all items in the result set.
- Search by Persona.
- This feature is not enabled by default, To use it, uncomment the ComputedIndex field for "persona" in the Sitecore.ContentSearch.Lucene.DefaultConfiguration.config file.
- After rebuilding the index, marketers will now be able to use expressions such as "persona:Chris" when using the new search screens.
Deprecated and removed features
- Sitecore is deprecating support for running Sitecore under IIS application pools configured to use Classic pipeline mode.
- For now, the default web.config file still contains the necessary handlers to run Sitecore in Classic pipeline mode, but the support for this will be removed at some point in the future.
- The setup.exe no longer supports the creation of application pools that use Classic pipeline mode. It only supports application pools using Integrated pipeline mode, and you must manually change the pipeline mode in the IIS after installation if you wish to use Classic pipeline mode.
Breaking changes
- The following breaking changes have been introduced in the API due to Lucene.Net 3.0 having removed a number of deprecated methods in the Lucene API:
- The deprecated TemplateItem.GetUsages() method now returns a ScoreDoc[] instead of a Hits object.
- The Search(string) method in the deprecated Sitecore.Data.Indexing.Index class now returns a ScoreDoc[] instead of a Hits object.
- The obsoleted methods GetLockPrefix() and SetLockPrefix() were removed from the Sitecore.Search.SitecoreLockFactory class due to changes in the underlying Lucene.Net LockFactory class.
- Several obsoleted methods have been removed from the FSDirectory and DebugFSDirectory classes due to changes in the underlying Lucene.Net.Store.FSDirectory class.
- To support .NET 4.5, the protected field "screen" in the Sitecore.Shell.Applications.Preview.SimulatedDevicePreview.Layouts.Default class has been changed from HtmlGenericControl to HtmlIframe. (382934)
- This should not affect customers, unless they have overridden the class.
Important changes
- The following 3rd party assemblies (.dll files) have been updated to a newer version. You might have to update and recompile your code if you are referencing these assemblies from your code:
- The Lucene.Net.dll assembly has been updated from 2.9.4.1 to 3.0.3.0.
- The HtmlAgilityPack.dll assembly has been updated from 1.4.0.0 to 1.4.6.0.
- The NewtonSoft.Json.dll assembly has been updated from 3.5.0.0 to 4.5.9.15308.
- The jQuery.UI library that is being used by the Item Buckets and Search functionality has been updated from 1.8.16 to 1.10.2. (384020)
- We are now shipping the Lucene.Net.Contrib assemblies as part of the default distribution.
- The clean installation
- The default values of the EnableEventQueues setting and the Indexing.ServerSpecificProperties setting have been changed from "false" to "true". This has been done to ensure that the new ContentSearch index for the web database is updated on publish in single-server environments (since the index for the web database by default is configured to use the onPublishEndAsync index update strategy which relies on the event queue).
Improvements
- Media library
- IFilter support. Sitecore now automatically uses the IFilters installed on the server to index the contents of document. This is for example useful for indexing the content of Word documents, PDF files, etc.
- Data source improvements
- The data source field on rendering parameters now stores the GUID instead of the path, thereby preventing problems where the data source would break or become invalid after moving items.
- Data sources are now registered in the link database, helping to prevent problems where the data source would break or become invalid after moving or deleting items.
- It is now possible to define search based data sources, allowing for dynamic data sources driven by content and tagging.
- You can either specify search queries manually in the data source field, or you use the new "Build Query" dialog box that is now available in the field menu above data source fields.
- To make use of such data sources, your code-behind for the component must be implemented to support this type of data source, for example similar to the following code: var searches = ((Sublayout)this.Parent).DataSource;
var queryable = UIFilterHelpers.ParseDatasourceString(searches) - Sitecore does not provide any XSLT extension methods to work with search based data sources.
- Renderings and layouts
- A new "Clear on Index Update" checkbox is available in the Caching section for presentation components, such as renderings and sublayouts. When checked, Sitecore will clear the HTML cache for the component each time the search index has been updated. This is useful for controls that retrieve items or render information from a search index.
- Troubleshooting which include files that patch which parts of the web.config file has been made easier.
- The /sitecore/admin/ShowConfig.html page now indicates which include file a node comes by listing a patch:source attribute on nodes.
- The patch:source attribute is also added to nodes where one or more attributes have been added or modified by an include file.
- If several include files have modified attributes on a node, the patch:source attribute will only indicate the name of the last include file that applied changes to the node.
- Setup.exe installation
- The setup.exe now supports installing Sitecore on Windows Server 2012 and Windows 8. (367542)
- The setup.exe currently does not allow you to install Sitecore on the Windows 8 Basic edition. To install on this Window s 8 edition, you must install from the zip-distribution. We plan to address this issue in a future update. Please use ref. no. 384389 if contacting Customer Service about this issue.
- The setup.exe will now install the MVC DLLs and config files, even when MVC is not enabled by the installation program. This makes it easier to enable MVC later.
- The setup.exe will now install a Web.config.WebForms file when installing Sitecore with MVC enabled. This makes it easier to disable MVC later. (373499)
- When using the "Client Only" mode, the installation program did not allow the user to use the database prefix of previously installed databases. (354004)
- When using the "DB Only" mode, the installation program would fail to install the databases if another DB only installation had already been performed. This happened because the database were not appended to the physical files when using DB only mode, unless you opened the Advanced options on the SQL Server step. (354003)
- The layout of the IIS advanced settings dialog box in the setup.exe was broken for some languages. (379311)
- The setup.exe now supports installing Sitecore on Windows Server 2012 and Windows 8. (367542)
- Simple "Search and Replace" feature (as part of Search Operations)
- On the Developer tab in the Content Editor, the "Create > Template" group/button has been renamed to "Template > Create" (switching the name of the ribbon group and the ribbon button).
Issues resolved
- IIS Integrated pipeline mode
- The Sitecore.Nexus.Web.HttpModule would throw an exception when trying to resolve Context.User if the database was down. This would cause the IIS to display the standard .NET error page instead of any custom error page, even if the custom error page was added to the IgnoreUrlPrefixes web.config setting. (325423)
- Update Installation Wizard
- After installing .NET Framework 4.5, the Update Package Installation Wizard could fail when trying to install an update package. The wizard would display a "Parser Error" and the following message: "The base class includes the field 'logArea', but its type (System.Web.UI.HtmlControls.HtmlGenericControl) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlIframe)." (377274)
- This occurred if the targetFramework attribute on the <compilation> node was set to "4.5" in the web.config file.
- The assembly version number of the Sitecore.Update.dll is no longer following the CMS version number. The file version is now on the format "1.0.0.xxxx". The file description and product name in the assembly meta-data have been changed to be more descriptive. (379447)
- After installing .NET Framework 4.5, the Update Package Installation Wizard could fail when trying to install an update package. The wizard would display a "Parser Error" and the following message: "The base class includes the field 'logArea', but its type (System.Web.UI.HtmlControls.HtmlGenericControl) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlIframe)." (377274)
- Miscellaneous
- The "System" folder in the media library has now been made hidden and protected by default to hide it from normal content editors.
- The ResolveItemPath command in the Nexus assembly now call GetChildren() with a ChildList.SkipSorting parameter, thereby improving performance when there are many children or when called repeatedly. (371212)